我在c ++参考上看到了以下代码:
bool operator() (const int& lhs, const int&rhs) const
最后一个const做了什么?
答案 0 :(得分:1)
这意味着函数(运算符)不会更改对象。
答案 1 :(得分:1)
来自Const Correctness教程:
如果你有一个const对象,你不想调用可以的方法 更改对象,因此您需要一种让编译器知道的方法 可以安全地调用哪些方法。这些方法称为“const 函数“,是唯一可以在const上调用的函数 宾语。顺便提一下,请注意,只有成员方法才有意义 方法。请记住,在C ++中,对象的每个方法都会收到一个 隐式指向对象的指针; const方法有效地接收 一个const这个指针。
如果您不熟悉constness的概念,那么阅读整篇文章可能是值得的(剧透:它是)。
答案 2 :(得分:1)
有效地使“this”指针成为指向const对象的指针。这意味着不能在该方法中修改对象的成员,也不能在非const对象上调用该方法。