C++ 類型轉換運算符包括靜態類型轉換(static_cast)、動態類型轉換(dynamic_cast)、常量類型轉換(const_cast)和重解釋類型轉換(reinterpret_cast)。在處理復雜情況時,這些類型轉換運算符可以幫助我們在不同類型之間進行安全的轉換。
int num = 42;
double d = static_cast<double>(num); // 將 int 類型轉換為 double 類型
class Base { virtual ~Base() {} };
class Derived : public Base {};
Base* b = new Derived();
Derived* d = dynamic_cast<Derived*>(b); // 將 Base 類型指針轉換為 Derived 類型指針
const int a = 42;
int* p = const_cast<int*>(&a); // 移除 const 修飾符,但這樣做可能導致未定義行為
int a = 42;
char* c = reinterpret_cast<char*>(&a); // 將 int 類型轉換為 char 類型
在處理復雜情況時,應根據實際需求選擇合適的類型轉換運算符。同時,要注意避免使用不安全的轉換,如過度使用 reinterpret_cast,以免導致程序出現未定義行為。