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

dfe*_*r88 1 c++ const

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

void foo(int &x) const {
  x = x+10;
}
Run Code Online (Sandbox Code Playgroud)

假设我将其称为如下:

int x = 5;
foo(x);
Run Code Online (Sandbox Code Playgroud)

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

我想我很困惑const关键字在附加到函数定义的末尾时的作用......任何帮助都表示赞赏.

Jam*_*lis 10

这不行.您只能对成员函数进行 const限定,而不是普通的非成员函数.

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