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