C++ 轉型

Andy Niu發表於2013-11-11

1、const_static的使用場景:接收一個const物件,但是想改變物件內容,使用const_static去除物件的常量性,然後可以修改物件。

2、dynamic_static的使用場景:從子類向父類轉化符合里氏代換,總是安全的。因此dynamic_static的使用場景主要是父類轉化為子類,首先轉化的結果必須是指標或者引用(指標轉化失敗返回Null,引用轉化錯誤丟擲異常),其次,要轉化的物件必須是多型型別,所謂多型型別,也就是型別必須公有繼承其他類,或者擁有虛擬函式(繼承或者自定義)。

3、reinterpret_cast的使用場景:有一個方法指標FunPtr,(void)(void),有一個方法A,(int)(void),我想讓FunPtr指向A,使用reinterpret_cast強制轉化。

4、static_cast的使用場景:不合適上面的場景,就是用static_cast

相關文章