1、const定义常量
const int valuename=value;
2、const与指针
指针常量
int * const p;
指针的地址不允许修改,值可以修改
常量指针
const int *p;
值不能修改,地址可以修改
指向常量的指针常量
const int * const p;
3、const与函数
(1)const修饰函数参数
(a)函数参数为常量指针,指针所指的值不能修改
void fun(const int *p);
(b)参数为引用,增加效率同时防止修改
void fun(const class& value);
void fun(const Type& value);
传递地址,不增加副本,并且防止修改。只有const能捕捉临时变量并传递。
(2)const修饰函数返回值
与修饰普通变量和指针的含义差不多
一般情况用const修饰返回对象时多用于运算符重载。
4、const与类
(1)const修饰成员变量,成员变量不能修改,只能在初始化列表中赋值
class A{
const int vaule;
A(int x):value(x){};
}
(2)const修饰成员函数,不能修改所在对象的数据成员,不能访问所在对象的非const修饰的成员函数
class A{
void fun() const;
}
(3)const修饰类对象
任何成员都不能修改,不能调用非const修饰的函数
在运算符重载中出现的const
出现在函数参数中,表示传入参数不允许修改,且不需要副本
出现在返回值之中
出现在成员函数后,