C 轉型操作符

2021-09-12 17:32:24 字數 854 閱讀 3327

說c++轉型操作符之前,我覺得有必要講講c的操作符(舊式的操作符)

1.type(expression) (type)expression 舊轉型幾乎可以允許你將任何型別轉換為任何型別,這是十分拙劣的,而且其辨識度低,意圖不明確。 所以我們引入了c++的轉換操作符。

const_cast用於改變表示式中的常量性或變易性(去除某個物件的常量性),<> 型別必須是指標,引用或指向物件成員的指標

static_cast 一般用來強迫隱式轉換,例如int轉換為double 等等 反之也成立,也可以將void轉換為type

dynamic_cast執行安全的向下轉型或跨系轉型動作(可以將基類的指標或引用轉換為派生類的指標或引用,所以說它只能用在繼承體系中)重點:<>型別必須是指標型別,其次必須是多型繼承體系(必須含有虛函式)

reinterpert_cast執行低階轉換,實際動作可能取決與編譯器,不可移植 。最常用的用途是「函式指標型別」

總結:c++轉換操作符分工明確,目的性強,辨識度高但是,c++轉換操作符,不到萬不得已,不要使用。

C 轉型操作符

解釋四個新型操作符的用途 static cast 基本與擁有與c舊式轉型相同的威力與意義,以及相同的限制。如 計算兩個int型數相除,結果為double型 int firstnum,secondnum double res double firstnum secondnum 舊式c語法 double...

c 轉型操作符

c 中有四個新的轉型操作符 static cast,dynamic cast,const cast,reinterpret cast.static cast的功能和c中的強制轉換差不多 基本資料型別中轉化,在有相關聯的類中相互轉換 int a double b static cast a dynam...

轉型操作符

轉型操作符可以將其他型別的轉換成所需的類的型別。如果要進行相反的轉型動作,即可將類的型別轉換為其他型別,可以對轉型操作符進行過載,轉換操作符過載函式的語法如下 operator othertype 注意宣告中不包含返回 型別,即使是void也不行,但函式體中必須包含return語句,用來返回轉型結果...