关于C++ const成员的一些细节

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

原文地址:https://www.cnblogs.com/candycloud/p/3721681.html