为什么最后放一个"const"?

use*_*266 6 c++ const operator-overloading

可能的重复:
c ++ const在类方法
中使用"const"在C++方法声明中的含义是什么?

int operator==(const AAA &rhs) const;
Run Code Online (Sandbox Code Playgroud)

这是一个运算符重载声明.为什么要放在const最后?谢谢

Max*_*xpm 8

const关键字表示该方法不会改变的对象.由于operator==是比较,没有什么需要改变.因此,它是const.对于operator=修改对象的方法,必须省略它.

它让编译器仔细检查你的工作,以确保你没有做任何你不应该做的事情.有关更多信息,请访问http://www.parashift.com/c++-faq-lite/const-correctness.html.

  • @ user658266 - 末尾的`const`与`()`中的`const`含义不同.最后的`const`表示不修改调用该方法的对象.而`()中的`const`表示接收的参数未被修改. (3认同)
  • @ user658266:"()"中的"const"保证作为参数(在本例中为rhs)传递给重载运算符"="的参数不会被修改.函数末尾的"const"表示该函数不会更改调用它的对象的任何成员. (2认同)
  • @ user658266澄清:`void MyFunction(const int MyInt)const;`是一个成员函数,它接受一个不能改变的**整数**并且**不会修改它所属的类.** (2认同)