C 四種強制型別轉換

2021-06-25 23:19:15 字數 954 閱讀 2521

1、概述

去const屬性用const_cast。

基本型別轉換用static_cast。

多型類之間的型別轉換用daynamic_cast。

不同型別的指標型別轉換用reinterpreter_cast。

2、詳解加示例

a> const_cast

用法:const_cast《型別》(表示式)

用途:刪除const屬性

示例及結果:

int a=3;

const int *b=&a;

int *c=const_cast(b);

*c=4;

std::cout<

b>static_cast

用法:static_cast《型別》(表示式)

用途:用於非多型型別轉換,標準轉換,代替c中通常的轉換操作。

示例及結果:

int a=3;

float f=166.7f;

a=static_cast(f);

std::cout此時a值為166,不用關心轉換後精度的損失

c>dynamic_cast

用法:dynamic_cast《型別》(表示式)

用途:將乙個指向派生類的基類指標或引用轉換為派生類的指標或引用

示例及結果:

#include class a

~a(){}

virtual void print()

注意事項:

dynamic_cast轉換符只能用於指標或者引用,只能用於含有虛函式的類。該操作符在執行型別轉換時首先將檢查能否成功轉換,所以在使用之前應使用if語句對其轉換成功與否進行測試。

d>reinterpret_cast操作符

表示式:reinterpret_cast《型別》(表示式)

用途:將一種型別轉換為另一種不同的型別



C 四種強制型別轉換

c風格的強制型別轉換 type cast 很簡單,不管什麼型別的轉換統統是 type b type a c 風格的型別轉換提供了4種型別轉換操作符來應對不同場合的應用。const cast,字面上理解就是去const屬性。static cast,命名上理解是靜態型別轉換。如int轉換成char。dy...

C 四種強制型別轉換

c風格的強制型別轉換 type cast 很簡單,不管什麼型別的轉換統統是 type b type a c 風格的型別轉換提供了4種型別轉換操作符來應對不同場合的應用。const cast,字面上理解就是去const屬性。static cast,命名上理解是靜態型別轉換。如int轉換成char。dy...

C 四種強制型別轉換

總 結 去const屬性用const cast。基本型別轉換用static cast。多型類之間的型別轉換用daynamic cast。不同型別的指標型別轉換用reinterpreter cast。任何具有明確定義的型別轉換,只要不包含底層const,都可以使用static cast 注 頂層con...