0

是否可以使用 this 指针将数据从调用对象分配给在 const 成员函数中声明的对象?就像是:

(假设我已经构建了 SomeClass)

void func() const
{
    SomeClass object1;

    object1 = *this;
}

int main()
{
    SomeClass object2;

    object2.func();

    return 0;
}

我知道上面的功能是没有意义的。我只是想知道这是否是使用 *this 的合法分配。

4

1 回答 1

1

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

于 2013-10-04T04:37:42.943 回答