可以修改变量的常量方法中的奇怪行为

时间:2014-12-15 02:13:51

标签: c++ gcc compiler-errors const

我正在使用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);   
}

我对常量函数有一种奇怪的行为。我只能修改局部变量和参数。由于该方法是常量,我想知道如何在函数体内进行任何修改?

有人请解释一下这种行为。 提前谢谢。

2 个答案:

答案 0 :(得分:1)

你问:

  

由于该方法是常量,如何在函数体内进行任何修改?

当成员函数是const成员函数时,您无法修改调用该函数的对象。您可以修改其他可修改的对象。

在你的功能中,你不能这样做:

this->x = x+b.x; // Not allowed.
x = x+b.x;       // Not allowed either.

答案 1 :(得分:0)

const成员方法只能修改成员变量