C 強制型別轉換

2021-08-19 03:05:06 字數 406 閱讀 8236

static_cast最接近於c風格轉換,但在無關類指標轉換時,編譯器會報錯,提公升了安全性;

double d=3.14159265;

int i = static_cast(d);

dynamic_cast要求轉換型別必須是指標或引用,且在下行轉換時要求基類是多型的,如果發現下行轉換不安全,dynamic_cast返回乙個null指標,dynamic_cast總是認為void*之間的轉換是安全的;

reinterpret_cast可以對無關類指標進行轉換,甚至可以直接將整型值轉成指標,這種轉換是底層的,有較強的平台依賴性,可移植性差;

class a {};

class b {};

a * a = new a;

b * b = reinterpret_cast

C 強制型別轉換

四種型別可能很多人都常常忽略就象我一樣,但是有時還是比較有用的。不了解的建議看看,一些機制我也不是十分了解,只是將一些用法寫出來讓大家看看。強制轉化無論從語法還是語意上看,都是c 中最難看的特徵之一。但是基於c風格的轉化的語義的不明確性及其一些潛在問題。強制型別轉化最終還是被c 接受了。1.stat...

C 強制型別轉換

標準c 中主要有四種強制轉換型別運算子 const cast,reinterpret cast,static cast,dynamic cast等等。1 static cast a 將位址a轉換成型別t,t和a必須是指標 引用 算術型別或列舉型別。表示式static cast a a的值轉換為模板中...

C 強制型別轉換

關於強制型別轉換的問題,很多書都討論過,寫的最詳細的是c 之父的 c 的設計和演化 最好的解決方法就是不要使用c風格的強制型別轉換,而是使用標準c 的型別轉換符 static cast,dynamic cast。標準c 中有四個型別轉換符 static cast,dynamic cast,reint...