我正在使用gcc编译器来处理以下代码:
base operator +( base& b)const
{
int i=12; // local variable
i++; // works fine
base temp;
b=temp; // works fine
temp.x=x+b.x;
return(temp);
}
我对常量函数有一种奇怪的行为。我只能修改局部变量和参数。由于该方法是常量,我想知道如何在函数体内进行任何修改?
有人请解释一下这种行为。 提前谢谢。
答案 0 :(得分:1)
你问:
由于该方法是常量,如何在函数体内进行任何修改?
当成员函数是const
成员函数时,您无法修改调用该函数的对象。您可以修改其他可修改的对象。
在你的功能中,你不能这样做:
this->x = x+b.x; // Not allowed.
x = x+b.x; // Not allowed either.
答案 1 :(得分:0)
const成员方法只能修改成员变量