函数头后的const是做什么的?

时间:2014-04-17 19:24:37

标签: c++

我在c ++参考上看到了以下代码: bool operator() (const int& lhs, const int&rhs) const 最后一个const做了什么?

3 个答案:

答案 0 :(得分:1)

这意味着函数(运算符)不会更改对象。

答案 1 :(得分:1)

来自Const Correctness教程:

  

如果你有一个const对象,你不想调用可以的方法   更改对象,因此您需要一种让编译器知道的方法   可以安全地调用哪些方法。这些方法称为“const   函数“,是唯一可以在const上调用的函数   宾语。顺便提一下,请注意,只有成员方法才有意义   方法。请记住,在C ++中,对象的每个方法都会收到一个   隐式指向对象的指针; const方法有效地接收   一个const这个指针。

如果您不熟悉constness的概念,那么阅读整篇文章可能是值得的(剧透:它是)。

答案 2 :(得分:1)

有效地使“this”指针成为指向const对象的指针。这意味着不能在该方法中修改对象的成员,也不能在非const对象上调用该方法。