常类型
常对象
类名 const 对象名
const 类名 对象名
必须进行初始化
常数据成员
定义的时候一定要用成员初始化列表来初始化
class A{
public:
const int v;
A (int x=0):v(x){}
// A (int x=0){v=x;} Wrong
};
int main(){
A a = 2;
return 0;
}
常成员函数
类型说明 函数名 (参数) const
class A{
public:
int v;
A (int x=0):v(x){}
void print()const;
};
void A::print()const{
cout<<v<<endl;
// v=10; Wrong
}
函数声明和定义时要有 const
常函数不能修改成员的值,不能调用非常量成员函数
常对象只能访问常函数,不能访问非 const 成员函数
mutable 关键字:不受 const 约束