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); //定义普通对象 a
a.show(); //调用普通成员函数 show()
const sample b(1,2); //定义常对象 b
b.show(); //调用常成员函数 show()
return 0;
}
输出结果
1
2
从上例中,有两个同名的成员函数 show(),一个是普通成员函数,另一个是常成员函数,它们是重载的。所以,关键字 const可以被用于对重载函数进行区分。