c++中型別的強制轉換分為以下四種:
1、static_cast(expr);
2、reinterpret_cast(expr);
3、const_cast(expr);
4、dynamic_cast(expr);
其中前三種為編譯時檢查,最後一種為執行時檢查。
static_cast(expr):用於基本型別之間的轉換,但不能用於基本型別指標之間的轉換,用於有繼承關係的類之間的轉換,用於有繼承關係類指標之間的轉換。
reinterpret_cast(expr):用於指標型別之間的強制轉換,用於指標和整數之間的轉換。
const_cast(expr):去掉變數的const屬性。
dynamic_cast(expr):主要用於類層次之間的轉換,必須要有多型(繼承,虛函式重寫)。
static_cast(expr);
#includeusing namespace std;
class a
{};class b : public a
{};int main()
reinterpret_cast(expr);
#includeusing namespace std;
int main()
const_cast(expr);
#includeusing namespace std;
int main()
dynamic_cast(expr);
#includeusing namespace std;
class a
};class b : public a
};int main()
C 中型別強制轉換
c 中有4種強制轉換 const cast,static cast,dynamic cast,reinterpret cast,以下將分別介紹 1.const cast 形式const cast expression 用來修改型別的const或volatile屬性,除了const或volatile修...
C 中的強制型別轉換
關於強制型別轉換的問題,很多書都討論過,寫的最詳細的是c 之父的 c 的設計和演化 最好的解決方法就是不要使用c風格的強制型別轉換,而是使用標準c 的型別轉換符 static cast,dynamic cast。標準c 中有四個型別轉換符 static cast dynamic cast reint...
C 中的型別強制轉換
c 同時提供了四種新的強制轉型形式 通常稱為新風格的或 c 風格的強制轉型 const cast expression dynamic cast expression reinterpret cast expression static cast expression 每一種適用於特定的目的 dyn...