2011-03-22 128 views

回答

2

這是Object Slicing

Derived* obj = new Derived; 
base objOne = (*obj) ; // Object slicing. Coping only the Base class sub-object 
         // that was constructed by eariler statement. 
0

是的。這實際上稱爲「切片」,因爲您只需從派生類中刪除所有內容即可。

1

您可以使用動態鑄造做到這一點。

例如

Base* baseObject = dynamic_cast<Base*>(derivedPtr); 

http://www.cplusplus.com/doc/tutorial/typecasting/

+2

你不需要爲這個動態轉換。你只需要它從一個基地派生出來。而且由於OP需要一個新的Base對象,所以根本不需要投射。 :) – Xeo 2011-03-22 04:43:28

+0

啊好的,謝謝。我被教導在錯誤的方面犯錯,所以有時我會忘記什麼時候沒有必要。 – 2011-03-22 04:53:10

相關問題