Const关键字附加到函数定义的末尾......它有什么作用?

时间:2010-10-20 21:33:26

标签: c++ const

假设我在C ++中定义一个函数,如下所示:

void foo(int &x) const {
  x = x+10;
}

假设我将其称为:

int x = 5;
foo(x);

现在通常(没有const关键字),这将成功地从调用者的角度更改x的值,因为变量是通过引用传递的。 const关键字会改变这个吗? (即从调用者的角度来看,x的值现在是15?)

我想我很困惑const关键字在附加到函数定义的末尾时的作用...感谢任何帮助。

1 个答案:

答案 0 :(得分:10)

这不起作用。您只能限定成员函数,而不是普通的非成员函数。

对于成员函数,这意味着隐式this参数是const限定的,因此您不能调用任何非const限定的成员函数或修改类实例的任何非可变数据成员在其上调用成员函数。