类中的const
成员函数后缀const
class A {
public:
void print()
{
cout << "no const print" << endl;
}
void print() const
{
cout << "const print" << endl;
}
};
int main()
{
cout << "===== Part 1 : class object =====" << endl;
A a;
a.print(); // no const print
const A ac;
ac.print(); // const print
cout << "===== Part 2 : class pointer =====" << endl;
A *ap = new A();
ap->print(); // no const print
const A *cap = new A(); // top-level const
cap->print(); // const print
A const *acp = new const A(); // low-level const
acp->print(); // const print
const A *const caacp = new const A();
caacp->print(); // const print
return 0;
}
在part 1中,类A的非常量对象调用非const函数,常量对象调用const函数。
在part 2中,非const指针调用非const函数,const指针调用const函数,不管是顶层const还是底层const。