dynamic_cast 和 dynamic_Pointer_cast的使用

僅僅是自我的總結,不涉及過多。。需要更多詳細資料的請自行百度。

1.指引或者引用的向上轉換,向下轉換

例如基類A ,派生類B.。A->B 則爲向下轉換。。B->A則爲向上轉換。。向上轉換爲隱士轉換。向下轉換需要dynamic_cast或者c的轉換方式。
B * b = new B;
A * a = b;
此時b就是向上轉換。無需顯式轉換既可以編譯通過。

2.dynamic_cast 

一般用於有繼承關係的類之間的向下轉換。

3.dynamic_pointer_cast

當指針是智能指針時候,向下轉換,用dynamic_Cast 則編譯不能通過,此時需要使用dynamic_pointer_cast。

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