在c語言中,用於強制型別轉換的方式,採用type a = (type)b。沒有型別檢查,非常不安全。在c++中有四種型別轉換方式 reinterpret_cast, static_cast, dynamic_cast,const_cast.四種型別轉換方式。
1. reinterpret_cast
與c語言中的強制累心給轉換相似,可以用於沒有任何關係的型別轉換,非常不安全,不建議使用。
char a = 'a';
int b = reinterpret_casta;
2. static_cast
可以用於基本型別的資料轉換,帶有父子繼承關係類的轉換。可以子類轉父類,也可以父類轉子類
//轉換基本型別
char a = 'a';
int b = static_casta;
// 轉換父子繼承類
// 父類轉子類
animal *a;
cat *b = static_castb;
// 子類轉父類
cat *a;
animal *b = static_castb;
3. dynamic_cast
主要用於子類轉父類,不可以父類轉子類
// 子類轉父類
cat *a;
animal *b = static_castb;
4. const_cast
主要用於去除const和加上const特性,可以用於轉換基本資料型別和類指標
int a = 10;
contst int &b = a;
//報錯,b不可以被修改
b= 20;
int c = const_castb;
c = 20;
//a,b,c 都被修改為20
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...