类中带 const 关键字的函数,叫常函数。
常函数,class 中的成员函数,承诺在函数内不会修改class 的任何成员变量,如果在常函数中修改类中的变量,则会编译报错。
但是,加 mutable 修饰的变量,常函数允许修改。
如下代码示例:
// person.hpp #includeusing namespace std; namespace MAN { class person { public: mutable string name; // mutable 修饰的变量,常函数也可以改 bool male; // 没用 mutable 修饰的变量,常函数不可修改 person(){}; person(int myage); void AgeAdd1(void); int AgeGet(void) const; //常函数 private: mutable int age; // mutable 修饰的变量,常函数也可以改 }; } // end of namespace MAN // person.cpp // 本函数只是读取class的成员变量,并不修改,所以可以是常函数 int MAN::person::AgeGet(void) const { age++; name = "ddd"; return this->age; }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)