這篇文章主要介紹c++中如何使用static_cast轉(zhuǎn)換,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
站在用戶的角度思考問題,與客戶深入溝通,找到馬村網(wǎng)站設(shè)計(jì)與馬村網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站建設(shè)、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊(cè)、雅安服務(wù)器托管、企業(yè)郵箱。業(yè)務(wù)覆蓋馬村地區(qū)。static_cast是一個(gè)強(qiáng)制類型轉(zhuǎn)換操作符。強(qiáng)制類型轉(zhuǎn)換,也稱為顯式轉(zhuǎn)換,C++中強(qiáng)制類型轉(zhuǎn)換操作符有static_cast、dynamic_cast、const_cast、reinterpert_cast四個(gè)。本節(jié)介紹static_cast操作符。
static_cast的轉(zhuǎn)換
?編譯器隱式執(zhí)行的任何類型轉(zhuǎn)換都可以由static_cast來完成,比如int與float、double與char、enum與int之間的轉(zhuǎn)換等。
doublea=1.999;
intb=static_cast<double>(a);//相當(dāng)于a=b;
當(dāng)編譯器隱式執(zhí)行類型轉(zhuǎn)換時(shí),大多數(shù)的編譯器都會(huì)給出一個(gè)警告:
e:\vs2010projects\static_cast\static_cast\static_cast.cpp(11):warningC4244:“初始化”:從“double”轉(zhuǎn)換到“int”,可能丟失數(shù)據(jù)
使用static_cast可以明確告訴編譯器,這種損失精度的轉(zhuǎn)換是在知情的情況下進(jìn)行的,也可以讓閱讀程序的其他程序員明確你轉(zhuǎn)換的目的而不是由于疏忽。
把精度大的類型轉(zhuǎn)換為精度小的類型,static_cast使用位截?cái)噙M(jìn)行處理。
?使用static_cast可以找回存放在void*指針中的值。
doublea=1.999;
void*vptr=&a;
double*dptr=static_cast<double*>(vptr);
cout<<*dptr<<endl;//輸出1.999
static_cast用來做什么
static_cast也可以用在于基類與派生類指針或引用類型之間的轉(zhuǎn)換。然而它不做運(yùn)行時(shí)的檢查,不如dynamic_cast安全。static_cast僅僅是依靠類型轉(zhuǎn)換語句中提供的信息來進(jìn)行轉(zhuǎn)換,而dynamic_cast則會(huì)遍歷整個(gè)類繼承體系進(jìn)行類型檢查,因此dynamic_cast在執(zhí)行效率上比static_cast要差一些?,F(xiàn)在我們有父類與其派生類如下:
classANIMAL
{
public:
ANIMAL():_type("ANIMAL"){};
virtualvoidOutPutname(){cout<<"ANIMAL";};
private:
string_type;
以上是“c++中如何使用static_cast轉(zhuǎn)換”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
文章標(biāo)題:c++中如何使用static_cast轉(zhuǎn)換-創(chuàng)新互聯(lián)
分享URL:http://aaarwkj.com/article12/dpjhdc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、品牌網(wǎng)站制作、移動(dòng)網(wǎng)站建設(shè)、電子商務(wù)、響應(yīng)式網(wǎng)站、標(biāo)簽優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容