c++中子類和父類的強制轉換

只有子類轉換成父類,父類不能轉換成子類。

因爲子類是從父類繼承而來,子類中包含父類中所有成員。

而如果父類可以轉換成子類,意味着將子類中將有一部分是未知的成員。這是不被允許的。

要是確定父類轉換成子類你能保證是正確的,可以用強制轉換:

子類強制轉換爲父類用static_cast<>:(a : public A)

A * book;

a* name;

book = static_cast<A*>(name);

父類轉換爲子類用dynamic_cast<>:

A * book;

a* name;

name = dynamic_cast<a*>(book);

使用什麼強制轉換方法視情況而定。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章