C ++ - const代表什么?

时间:2011-02-24 14:19:44

标签: c++ const

如果我得到如下的C ++语句:

double getPrice() const;

const在这里代表什么?

感谢。

4 个答案:

答案 0 :(得分:7)

这适用于成员函数(在类或结构中)。这意味着该方法不会更改其操作的实例的状态(例如,不会更改任何成员变量)。

答案 1 :(得分:3)

当你调用非静态成员函数时,你总是在某个对象上调用它,对吧?该对象作为参数(隐式)传递。例如,如果GetPrice是类X的方法,则它具有类型为X&的隐式参数。然后该方法是const,隐式参数的类型为const X&,因此成员函数不能更改调用它的对象的任何数据成员,除非数据成员被声明为mutable

答案 2 :(得分:2)

它表示它不会改变类的成员作为副作用。

答案 3 :(得分:1)

const表示getPrice()不会修改实例字段,但明确声明为mutable的字段除外。