dim private public static_C++ 强制类型转换操作符 static_cast
(給CPP開發者加星標,提升C/C++技能)
來源:melonstreet?https://www.cnblogs.com/QG-whz/p/4509710.htmlstatic_cast是一個強制類型轉換操作符。強制類型轉換,也稱為顯式轉換,C++中強制類型轉換操作符有static_cast、dynamic_cast、const_cast、reinterpert_cast四個。本節介紹static_cast操作符。
編譯器隱式執行的任何類型轉換都可以由static_cast來完成,比如int與float、double與char、enum與int之間的轉換等。
當編譯器隱式執行類型轉換時,大多數的編譯器都會給出一個警告:
2010?projects\使用static_cast可以明確告訴編譯器,這種損失精度的轉換是在知情的情況下進行的,也可以讓閱讀程序的其他程序員明確你轉換的目的而不是由于疏忽。
把精度大的類型轉換為精度小的類型,static_cast使用位截斷進行處理。
使用static_cast可以找回存放在void*指針中的值。
static_cast也可以用在于基類與派生類指針或引用類型之間的轉換。然而它不做運行時的檢查,不如dynamic_cast安全。static_cast僅僅是依靠類型轉換語句中提供的信息來進行轉換,而dynamic_cast則會遍歷整個類繼承體系進行類型檢查,因此dynamic_cast在執行效率上比static_cast要差一些。現在我們有父類與其派生類如下:
:
class?ANIMAL{
此時我們進行派生類與基類類型指針的轉換:注意從下向上的轉換是安全的,從上向下的轉換不一定安全。
int?main(){static_cast可以把任何類型的表達式轉換成void類型。
static_cast把任何類型的表達式轉換成void類型。
另外,與const_cast相比,static_cast不能把換掉變量的const屬性,也包括volitale或者__unaligned屬性。
推薦閱讀
(點擊標題可跳轉閱讀)
起底 C++ Range 令人驚訝的局限性!
C++ 中是如何調用 C 接口的?
看完本文有幫助?請分享給更多人
關注「CPP開發者」加星標,提升C/C++技能
好文章,我在看??
總結
以上是生活随笔為你收集整理的dim private public static_C++ 强制类型转换操作符 static_cast的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python document_pyth
- 下一篇: 大数据架构详解_【数据如何驱动增长】(3