C 型轉換
C 風格的投射可以被認為是盡力而為的投射並且被命名為因為它是唯一可以在 C 中使用的投射。該投射的語法是 (NewType)variable
。
每當使用此強制轉換時,它將使用以下 c ++強制轉換之一(按順序):
const_cast<NewType>(variable)
static_cast<NewType>(variable)
const_cast<NewType>(static_cast<const NewType>(variable))
reinterpret_cast<const NewType>(variable)
const_cast<NewType>(reinterpret_cast<const NewType>(variable))
函式式轉換非常相似,但由於其語法的結果有一些限制:NewType(expression)
。因此,只能轉換為沒有空格的型別。
最好使用新的 c ++強制轉換,因為它更易讀,可以在 C++原始碼中的任何地方輕鬆發現,並且在編譯時會檢測到錯誤,而不是在執行時。
由於此型別轉換可能導致意外情況,因此通常被認為是危險的。