•static_cast《目標型別》 (源型別物件)
–編譯器對源型別和目標型別做相容性檢查,檢查不通過報錯
–源型別和目標型別只要在乙個方向上可以做隱式型別轉換,那麼在兩個方向上就都可以做靜態型別轉換
–如果將目標型別從源型別的型別轉換建構函式,或者源型別向目標型別的型別轉換運算子函式,被宣告為explicit,
那麼從源型別到目標型別的型別轉換就必須顯式完成,靜態型別轉換可用於這樣的場合
•dynamic_cast《目標型別》 (源型別物件)
–編譯器首先檢查源型別和目標型別是否同為指標或引用且其型別之間存在具有多型性的繼承關係,不存在直接報錯
–編譯器生成一段指令,執行時執行該指令,檢查源和目標的型別是否一致,不一致通過返回空指標或丟擲異常報錯
–常被用於具有多型繼承關係的父子類物件的指標或引用之間的轉換
•const_cast《目標型別》 (源型別物件)
–編譯器檢查源型別和目標型別是否同為指標或引用,且其目標型別之間除常屬性以外必須完全相同,否則直接報錯
–去除指標或引用上的const屬性
int
const
volatile x = 100;
intconst* p = &x;
*p = 200; // 錯誤
int* q = const_cast
(p);
*q = 200;
•reinterpret_cast《目標型別》 (源型別物件)
–編譯器檢查源型別和目標型別是否同為指標或引用,或者乙個是指標乙個是整型,否則直接報錯
–在任意型別的指標或引用之間轉換,意味著可以將同乙個物件視作不同的型別,並以不同的方式訪問或處理之
–無論何種型別的指標,從本質上講都與整數無異,即位址空間中乙個特定位元組的順序號
預設顯示型別與顯示型別轉換
預設顯示型別和顯示型別轉換的區別 一 什麼是顯示樣式?顯示樣式 display 是w3c規定瀏覽器採取哪種盒模型規則來顯示乙個元素,常用顯示樣式的值有 block 塊級盒模型 inline 行內盒模型 inline block 行內塊級盒模型 二 塊級標籤 block 行內標籤 inline 行內塊...
C 顯示型別轉換
首先說明,該內容主要摘自c stl 開發技術導引。在c語言中,我們一般採用隱式型別轉換,這樣導致的結果是可讀性不高。如下這段 這段 將double型別轉換成了int型別,問題是如果別人來看這段 的時候,別人可能就不知道這種轉換是程式需要的還是編寫 的人不小心寫錯了呢。因此,在c 程式中應盡量使用顯示...
c 顯示型別轉換
dynamic cast,static cast,const cast,1.使用dynamic cast 操作符將基類型別物件的引用或者指標轉換為同一繼承層次中其他型別的引用或者指標 執行時型別檢查 2.const cast 操作符將變數的const性質轉換掉 example1 double d 8...