const修饰成员函数
1)
常量限定修饰符,它把一个对象转换为常量(constant)。
const对象必须初始化而且是在定义的同时。
初始化后的const对象(或指针)是不能修改的。
2)修饰成员函数
const类对象只能调用const成员函数,不能调用普通成员函数;
const成员函数不能修改类的成员变量,若要修改则用mutable修饰该成员变量。
3)例子
class Text{ private: int k; //mutable int k; public: Text(int kk){ k=kk; } void printconst() const{ k=1000; //不能修改类的成员变量 cout<<k<<endl; } void print(){ cout<<k<<endl; } }; int main(){ Text e(100); e.print(); const Text t=e; //t.print(); //不能调用普通成员函数 t.printconst(); return 0; }
2. 初始化列表
构造函数除了有名字,参数列表和函数体之外,还可以有初始化列表
foo(string s, int i):name(s),id(i){}; //初始化列表