日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

dim private public static_C++ 强制类型转换操作符 static_cast

發(fā)布時(shí)間:2025/3/20 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 dim private public static_C++ 强制类型转换操作符 static_cast 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

(給CPP開(kāi)發(fā)者加星標(biāo),提升C/C++技能)

來(lái)源:melonstreet?https://www.cnblogs.com/QG-whz/p/4509710.html

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操作符。

  • 編譯器隱式執(zhí)行的任何類型轉(zhuǎn)換都可以由static_cast來(lái)完成,比如int與float、double與char、enum與int之間的轉(zhuǎn)換等。

double?a?=?

當(dāng)編譯器隱式執(zhí)行類型轉(zhuǎn)換時(shí),大多數(shù)的編譯器都會(huì)給出一個(gè)警告:

2010?projects\

使用static_cast可以明確告訴編譯器,這種損失精度的轉(zhuǎn)換是在知情的情況下進(jìn)行的,也可以讓閱讀程序的其他程序員明確你轉(zhuǎn)換的目的而不是由于疏忽。

把精度大的類型轉(zhuǎn)換為精度小的類型,static_cast使用位截?cái)噙M(jìn)行處理。

  • 使用static_cast可以找回存放在void*指針中的值。

double?a?=?

static_cast也可以用在于基類與派生類指針或引用類型之間的轉(zhuǎn)換。然而它不做運(yùn)行時(shí)的檢查,不如dynamic_cast安全。static_cast僅僅是依靠類型轉(zhuǎn)換語(yǔ)句中提供的信息來(lái)進(jìn)行轉(zhuǎn)換,而dynamic_cast則會(huì)遍歷整個(gè)類繼承體系進(jìn)行類型檢查,因此dynamic_cast在執(zhí)行效率上比static_cast要差一些?,F(xiàn)在我們有父類與其派生類如下:

class?ANIMAL
{

此時(shí)我們進(jìn)行派生類與基類類型指針的轉(zhuǎn)換:注意從下向上的轉(zhuǎn)換是安全的,從上向下的轉(zhuǎn)換不一定安全。

int?main(){
  • static_cast可以把任何類型的表達(dá)式轉(zhuǎn)換成void類型。

  • static_cast把任何類型的表達(dá)式轉(zhuǎn)換成void類型。

  • 另外,與const_cast相比,static_cast不能把換掉變量的const屬性,也包括volitale或者_(dá)_unaligned屬性。

推薦閱讀

(點(diǎn)擊標(biāo)題可跳轉(zhuǎn)閱讀)

起底 C++ Range 令人驚訝的局限性!

C++ 中是如何調(diào)用 C 接口的?

看完本文有幫助?請(qǐng)分享給更多人

關(guān)注「CPP開(kāi)發(fā)者」加星標(biāo),提升C/C++技能

好文章,我在看??

總結(jié)

以上是生活随笔為你收集整理的dim private public static_C++ 强制类型转换操作符 static_cast的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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