1.const对象,只能调用const成员函数
2.非const对象可以调用const成员函数和非const成员函数
a.如果类同时具有const重载版本的成员函数和非重载版本,那么该类实例化的非const对象调用该成员函数的时候,会调用非重载版本。
b.如果类只有const版本的成员,那么实例化的非const对象会调用const版本的成员
实例如下:
class A
{ public: A(){} ~A(){}void foo() { cout << "foo() of A" << endl; } void foo() const { cout << "const foo() of A" << endl; }}; int main(){ const A a; a.foo(); A a1; a1.foo();return 0;
}程序运行结果:
const foo() of A
foo() of A
class A
{ public: A(){} ~A(){} void foo() const { cout << "const foo() of A" << endl; }}; int main(){ A a; a.foo();return 0;
}运行结果:
const foo() of A