日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++中的4个类型转换关键字

發(fā)布時間:2025/3/21 c/c++ 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++中的4个类型转换关键字 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

n多書里面推薦要養(yǎng)成使用轉(zhuǎn)型關(guān)鍵字的習慣,幾年過去了,感覺還是不習慣,C風格的轉(zhuǎn)型操作實在太強大太方便了。

1、const_cast

號稱唯一具有常量性移除的轉(zhuǎn)型操作符,這個說法實在很廢話,不解釋。平時幾乎沒有用過,遇到需要這個關(guān)鍵字的時候,都是直接修改了接口的類型,也不會去用這個關(guān)鍵字,一般來說老接口設(shè)計有問題啊。明明是const的,非得轉(zhuǎn)成non-const實在別扭。

2、dynamic_cast

號稱安全向下轉(zhuǎn)型(safe downcasting),就是把一個父類型轉(zhuǎn)成它的子類型,如果不是父子關(guān)系則會返回0,比如一種用法:

assert(dynamic_cast<derived*>(pBase));

曾經(jīng)認為是唯一好用又常用的轉(zhuǎn)型操作符,但在吃過虧后發(fā)現(xiàn)也要三思而后用,比較喜歡無腦,所以不再喜歡它了。

不止一本書上說這個操作符有性能問題,但是它們沒有給出具體的度量值,也不會告訴你性能分析軟件沒法將它的耗時與語句直接對應(yīng)上,比如會把使用這個操作符的語句耗時顯示在unknown分組中,太操蛋了。google的C++編碼規(guī)范中也明確禁用此關(guān)鍵字,可惜我仍然還沒反應(yīng)過來,吃了大虧。

總之,熱點程序里面不要用。

3、static_cast

把編譯器隱式執(zhí)行的轉(zhuǎn)型搞成顯式的,特別是有告警的類型轉(zhuǎn)換加上它就ok啦,比如double轉(zhuǎn)int。偶爾用用,敲這么多字,還是C風格省心……

4、reinterpret_cast

對操作數(shù)的位模式做轉(zhuǎn)化,比如把一個結(jié)構(gòu)體轉(zhuǎn)成char*。從來沒用過,這名字實在陌生得緊,不看書真心想不起來。一般都會把源操作內(nèi)存塊轉(zhuǎn)成void,然后使用的地方再找到想要的字段,轉(zhuǎn)成想要的類型,工作中還沒見過代碼直接用的。

?

更多見《C++ primer第三版中文版》4.14節(jié)&19.1節(jié)、《effective C++中文版第三版》條款27

總結(jié)

以上是生活随笔為你收集整理的C++中的4个类型转换关键字的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。