const A a(1); A const a(1);
- 常对象只能调用常成员函数 (除了由系统自动调用的隐式构造函数和析构函数)
- 常对象中所有的数据成员为常变量(不能被修改),且必须有初始值
#includeusing namespace std; class a { public: void fun() const; }; //注意:定义时要与声明一致,即别漏了const void a::fun() const { cout << "test" << endl; } int main() { //常成员函数既可以被常对象调用,也可以被非常对象调用 a a1; a1.fun(); //常对象 const a a2; a2.fun(); }
- 常成员函数 不可改变 对象的任何数据成员值
> f1 与 f2
class a { public: void f2(const int &d) { data = d; } private: int data; };常数据成员
值不能改变。
只能通过构造函数的参数初始化表对常数据成员进行初始化
C++中的常对象和常对象成员
- 不要误认为常对象中的成员函数都是常成员函数,常对象只保证其所有数据成员的值不被修改。
- 如果在常对象中的成员函数未加const声明,则编译系统会把它当非const成员函数处理。
- 常成员函数不能调用另外一个非cosnt成员函数。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)