2013-10-04 166 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,但是,這不是其中之一。