在C++中,類型轉換主要有以下幾種方法:
static_cast
關鍵字進行類型轉換,適用于基本數據類型之間的轉換,以及具有繼承關系的類之間的轉換。int a = 10;
double b = static_cast<double>(a);
dynamic_cast
關鍵字進行類型轉換,用于類之間的多態類型轉換,只能用于具有虛函數的類。class Base {
public:
virtual void func() {}
};
class Derived : public Base {};
Base* basePtr = new Derived;
Derived* derivedPtr = dynamic_cast<Derived*>(basePtr);
reinterpret_cast
關鍵字進行類型轉換,不進行類型檢查,直接將一個指針或引用轉換為另一種類型。int* ptr = new int(10);
char* charPtr = reinterpret_cast<char*>(ptr);
const_cast
關鍵字進行類型轉換,用于去除const屬性,只能用于指針或引用。const int a = 10;
int& b = const_cast<int&>(a);
int a = 10;
double b = (double)a;