在类成员函数后面加const

Posted zhangnianyong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在类成员函数后面加const相关的知识,希望对你有一定的参考价值。

在看开源代码时,经常会看到在类的成员函数后面加const,之前了没有太关注过,近来闲来无事,就想起这件事,网上查了一下,大概明白了是怎么回事,这里引用CSDN愽文里的段话:“编译器会自动给每一个函数加一个this指针。在一个类的函数后面加上const后,就表明这个函数是不能改变类的成员变量的(加了mutable修饰的除外)。实际上,也就是对这个this指针加上了const修饰”。举个例子:

class test

{

public:

  test(int a=10):aa(a){}

  ~test(){}

 

  int getA() const {aa++,bb++;return aa}

 

private:

  int aa;

  mutable int bb;

};

int main()

{

  test t(100);

  int cc = t.getA();

};

这里编译器会报错, C2166: 左值指定 const 对象,getA()函数不能执行aa++操作,但执行bb++是可以的。

以上是关于在类成员函数后面加const的主要内容,如果未能解决你的问题,请参考以下文章

函数后面有个 const

const成员函数总结

C/C++类和对象类中常用的关键字总结

C++ --- C++函数后面加const修饰符

常量成员函数

const成员函数,内联函数,友元函数,static成员