C 中型別的強制轉換

2021-08-22 04:51:47 字數 933 閱讀 4786

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...