1. 程式人生 > >條款2 最好使用C++轉型操作符(static_cast、const_cast、dynamic_cast、reinterpret_cast)

條款2 最好使用C++轉型操作符(static_cast、const_cast、dynamic_cast、reinterpret_cast)

static_cast基本上與C舊式轉型具有相同的威力與意義,以及相同的限制。例如,你不能將struct轉化為int,或將都變了轉換為pointer。甚至不能移除表示式的常量性,應由const_cast完成。

const_cast完成移除表示式的常量性,而要新增表示式的常量性,應由static_cast完成

dynamic_cast主要在有子父類繼承關係中,完成型別之間的轉換,從而實現多型。如是指標,轉換失敗返回空,如是引用,轉換失敗丟擲異常。

reinterpret_cast。此轉換操作符總是與編譯器息息相關,不具備可移植性。最常用的用途為轉換函式指標。