2008-03-15 12:59
強制型別轉換容易引發錯誤,所以被認為是一種醜陋的語法。c++中有乙個觀念:醜陋的語法就應該用醜陋的方式表達。所以,c++的轉換操作符使用***x_cast<...>()這種一種繁瑣的形式。目的是為了讓你在使用型別轉換前三思而行,看看是不是又不需要型別轉換的方法或設計。
更重要的是,c風格的強制型別轉換通常很難查詢。而c++這四種轉換操作符可以用最簡單的search功能找到。所以更便於排錯。
這就是說,只要你在c++中程式設計,盡量不要使用型別轉換,即使要用,也應該使用***x_cast<..>()這種形式。
四種轉換的大概解釋如下:
dynamic_cast 用於多型型別間的轉換。包括繼承類間的轉換和兄弟類間的轉換。
static_cast 用於非多型型別的轉換,相當於傳統的c語言裡的強制轉換,效果就相當於加個括號:int a=(long)b;。既不具有繼承關係的型別間的轉換。
const_cast 用於移除const, volatile限定符.
reinterpret_cast 用於任意的位到位的轉換.
mysql型別轉換c 型別轉換 C 型別轉換
一 簡介 型別轉換 把資料從一種型別轉換另一種型別 我們要求等號兩邊參與運算子必須型別一致,如果不一致,滿足下列條件會發生自動型別轉換或者隱式型別轉換。1.兩種型別相容 例如 int和double 相容 都是數字型別 2.目標型別大於源型別 double int 顯示型別轉換 1.兩種型別相相容 i...
C 型別的轉換
型別的轉換c 中型別轉換 顯隱 的機制分為兩種 一 隱式轉換 implicit conversions 二 顯式轉換 explict conversions 隱式轉換不需要指明欲轉變的型別 顯式轉換明確地使用轉換運算子 cast 指定要轉換成哪一種型別。c 允許程式設計師如果對於溢位進行處理 che...
c 的型別轉換
1.c 的四種型別轉換 static cast,dynamic cast,reinterpret cast,const cast 語法格式 static cast expr static cast expr 2.型別轉換的運用 1 類的上下行轉換和交叉轉換 上行轉換 派生類指標轉換到基類指標。下行轉...