* this和const成员函数

时间:2013-10-04 03:14:27

标签: c++

是否可以使用this指针将调用对象的数据分配给const成员函数中声明的数据?类似的东西:

(假设我已经建立了SomeClass)

void func() const
{
    SomeClass object1;

    object1 = *this;
}

int main()
{
    SomeClass object2;

    object2.func();

    return 0;
}

我知道上面的功能毫无意义。我只是想知道这是否是使用* this的合法作业。

1 个答案:

答案 0 :(得分:1)

只要SomeClass有一个复制赋值运算符,这段代码就可以了。成员函数上的const声明您不会更改对象的状态:func()不会执行此操作,因此它是合法代码。如果你足够努力,有很多方法可以破坏const,但是,这不是其中之一。