2013-10-04 124 views
0

是否可以使用此指针将数据从调用对象分配给在const成员函数中声明的数据?喜欢的东西:* this和const成员函数

(假设我已经建立SomeClass的)

void func() const 
{ 
    SomeClass object1; 

    object1 = *this; 
} 

int main() 
{ 
    SomeClass object2; 

    object2.func(); 

    return 0; 
} 

我知道上面的功能是没有意义的。我只是想知道这是否是一个使用* this的法律任务。

+9

难道你不能只编译代码,看看会发生什么? –

+2

你只能从'* this'对象读取,所以不能明白为什么它应该是一个问题。 – goji

+1

http://ideone.com是你的朋友:) – Carl

回答

1

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