在C++中重载运算符时,"const"是什么意思?

4

我看到了类似这样的东西:

const char& operator[] (int Index) const

我理解第一个const。它是用来保护返回的char不被修改。

但是第二个const是什么意思呢?为什么有时候我们使用两个const,有时候只用一个?


请参见https://dev59.com/vmIk5IYBdhLWcg3we-H5?rq=1 - Mat
1个回答

7

它可以用于任何成员函数,不仅仅是操作符。这意味着此函数将:

  • 无法修改任何数据成员(除了 mutable 类型的成员)
  • 无法调用任何非 const 成员函数

2
我总是喜欢说这是指定隐式this指向对象的常量性的方式。 - StoryTeller - Unslander Monica
可变的意思是指函数内部的局部变量吗? - Yiou
@user3429675 - 不,它们是普通的数据成员,在const函数中可以更改。 mutable是一个关键字,例如const。 可变数据成员可以是:mutable int x; 例如。 - Kiril Kirov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接