C++学习(六) 常引用、常对象、常对象成员、常成员函数
文章目录
- 1、常引用
- 1.1、作用
- 1.2、说明
- 二、常对象
- 2.1、作用
- 2.2、注意
- 2.3、说明
- 三、常对象成员
- 3.1、作用
- 3.2、说明
- 四、常成员函数
- 4.1、说明
- 4.2、注意
1、常引用
1.1、作用
常引用所引用的对象不能被更新。
1.2、说明
常引用的说明形式:
const 类型& 引用名
例如:
int a;
const int& b=a;// b是常引用,不允许被更改
b=2; // 错误
二、常对象
2.1、作用
常对象中的数据成员值在对象的整个作用域内不能被更改。
2.2、注意
常对象中的数据成员为常量且必须要有初值
2.3、说明
常对象的说明形式:
类名 const 对象名[(参数表)];
或
const 类名 对象名[(参数表)];
三、常对象成员
3.1、作用
如果在一个类中说明了常数据成员,那么构造函数就只能通过初始化列表对该数据成员进行初始化,而在其他函数都不能对该成员赋值。
3.2、说明
常对象成员的说明形式:
class A{public:...private:const int a; //常数据成员const int b;const int c;
};
四、常成员函数
4.1、说明
常成员函数的说明形式:
类型 函数名(参数名) const;
4.2、注意
const 是函数类型的一个组成部分,因此在声明函数和定义函数时都要有关键字 const。在调用时不用加 const。
示例代码如下:
#include<iostream>
using namespace std;
class sample{public:sample(int i,int j){x=i;y=j;}void show() //定义普通成员函数 show(){cout<<x<<endl;}void show() const //定义常成员函数 show(){cout<<y<<endl;}private:int x,y;
};
int main()
{sample a(1,2); //定义普通对象 aa.show(); //调用普通成员函数 show()const sample b(1,2); //定义常对象 bb.show(); //调用常成员函数 show()return 0;
}
输出结果
1
2
从上例中,有两个同名的成员函数 show(),一个是普通成员函数,另一个是常成员函数,它们是重载的。所以,关键字 const可以被用于对重载函数进行区分。
C++学习(六) 常引用、常对象、常对象成员、常成员函数相关推荐
- C++中的常引用、常对象、常函数、常数据成员
1.常引用 用const声明的引用就是常引用.常引用所引用的对象不能被更改.经常见到的是常引用作为函数的形参,这样不会发生对实参的误修改.常引用的声明形式为:const 类型说明符 &引用名. ...
- 常引用、常对象和对象的常成员
常引用 用const声明的引用就是常引用.常引用所引用的对象不能被更改.我们经常见到的是常引用作为函数的形参,这样不会发生对实参的误修改. 常引用的声明形式为:const 类型说明符 &引用名 ...
- 【C++---16】常指针和常引用
Coordinate coor1(3,5); //定义一个普通对象const Coordinate &coor2 = coor1; //coor2是对象的常引用const Coordinate ...
- 12.4 C++常引用
C++对象常引用 在C++中,常用常指针和常引用作函数参数,既能保证数据安全,使数据不能被随意修改,在调用函数时又不必建立实参的拷贝. 用常指针和常引用作函数参数,可以提高程序运行效率. 在C++中, ...
- “约见”面试官系列之常见面试题之第六十八篇之本地对象 内置对象 宿主对象(建议收藏)
首先解释下宿主环境:一般宿主环境由外壳程序创建与维护,只要能提供js引擎执行的环境都可称之为外壳程序.如:web浏览器,一些桌面应用系统等.即由web浏览器或是这些桌面应用系统早就的环境即宿主环境. ...
- C++之临时对象、常引用和浅拷贝探究
和结构体一样,一个类的对象也可以以值,指针或者引用的形式作为函数的参数或返回值.一般情况下,为了避免创建临时对象通常传对象的引用,并且为了避免在函数体内修改对象的值,通常使用常引用: co ...
- C++中的常对象与常引用
目录 一.常对象 二.用const修饰的类对象 1.常成员函数 声明 注意 三.常引用 1.声明 2.应该在何时使用: 1.在函数中无需改变其值的参数,应该使用常引用. 2.复制构造函数的参数一般也宜 ...
- C++入门学习:引用和常引用
在C中有个关键字typedef 用来给类型(int, char *, double....)取别名,但不能给变量a取别名(int a:) 在C++新增了一个概念:引用--给空间取别名(变量名a就代表了 ...
- 常引用、常量指针、指针常量、指向常量的常指针、空指针与野指针解释
1.一.基础知识 引用并非对象 引用必须初始化 引用只能绑定在对象上,而不能与字面值或某个表达式的计算结果绑定在一起 类型要严格匹配 int &a = 10; //错误:引用类型的初始值必须是 ...
最新文章
- ZZULIOJ 1898: 985的数字难题 【水题】
- mysql中修改字段的类型
- 大型“数码管”解决方案:用了 28 个舵机的时钟,到底有什么特别?
- 算法 | 尺度不变特征变换匹配算法 Scale Invariant Feature Transform (SIFT)
- jdk8 接口抽象类区别_JDK 8时代的抽象类与接口
- 迭代器模式和Java
- android 人脸识别_小模型,高精度!小视科技推出极致轻量型人脸识别SDK
- 【压力测试】Jmeter基础3
- Tensorflow学习笔记1----基础分类模型
- H5 表格标签基本使用
- Android WorldWind的使用与添加Geoserver影像(一)
- erp采购总监个人总结_ERP采购总监总结
- 判断四张扑克牌能否凑成24点游戏算法
- 注塑模具有哪些必须要知道的,了解一下
- centos7.5安装
- 理财——优质生活的第一步
- python 函数进阶_python之函数进阶
- [USACO18DEC]Fine Dining
- leetcode 1037. 有效的回旋镖(三点共线问题)
- Could not GET 'http://jcenter.bintray.com/com/github/dcendents/android-maven-gradle-plugin/2.1/andro