c++/oop---常类型
常类型
常对象
类名 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 约束