是否可以使用this指针将调用对象的数据分配给const成员函数中声明的数据?类似的东西:
(假设我已经建立了SomeClass)
void func() const
{
SomeClass object1;
object1 = *this;
}
int main()
{
SomeClass object2;
object2.func();
return 0;
}
我知道上面的功能毫无意义。我只是想知道这是否是使用* this的合法作业。
答案 0 :(得分:1)
只要SomeClass有一个复制赋值运算符,这段代码就可以了。成员函数上的const声明您不会更改对象的状态:func()不会执行此操作,因此它是合法代码。如果你足够努力,有很多方法可以破坏const,但是,这不是其中之一。