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
关于C++ const成员的一些细节
时间: 2024-10-08 09:45:30