如果我得到如下的C ++语句:
double getPrice() const;
const
在这里代表什么?
感谢。
答案 0 :(得分:7)
这适用于成员函数(在类或结构中)。这意味着该方法不会更改其操作的实例的状态(例如,不会更改任何成员变量)。
答案 1 :(得分:3)
当你调用非静态成员函数时,你总是在某个对象上调用它,对吧?该对象作为参数(隐式)传递。例如,如果GetPrice是类X的方法,则它具有类型为X&
的隐式参数。然后该方法是const,隐式参数的类型为const X
&,因此成员函数不能更改调用它的对象的任何数据成员,除非数据成员被声明为mutable
。
答案 2 :(得分:2)
它表示它不会改变类的成员作为副作用。
答案 3 :(得分:1)
const
表示getPrice()
不会修改实例字段,但明确声明为mutable
的字段除外。