在C++中,static_cast是一種類型轉換操作符,用于執行靜態轉換。它可以在編譯時進行類型檢查,并且只能在相關的類型之間進行轉換。
static_cast的基本語法如下:
static_cast<目標類型>(源表達式)
目標類型是你希望將源表達式轉換為的類型。源表達式可以是任意的可轉換類型,比如指針、引用、基本數據類型等。
下面是一些示例用法:
int num = 10;
double num_double = static_cast<double>(num);
int* ptr = new int(10);
void* void_ptr = static_cast<void*>(ptr);
int num = 10;
double& num_ref = static_cast<double&>(num);
需要注意的是,static_cast無法執行所有類型的轉換,它有一些限制。例如,它不能用于去除常量性、將指針轉換為不相關的類型等。對于這些情況,可以使用其他類型轉換操作符,如const_cast、reinterpret_cast等。