xxx_cast是一個統稱,它指的是static_cast(靜態轉換),const_cast(常量轉換),reinterpert_cast(重解釋轉換),dynamic_cast(動態轉換)。本次我們就了解一下他的用途及其轉換方式。
1.static_cast(靜態轉換)
靜態轉換全部用于明確定義達到轉換,包括編譯器允許我們所做的不用強制轉換的安全變換和不太安全的但清楚定義的變換。
2.const_cast(常量轉換)
如果從const轉換為非const或從volatile轉換為非volatile,就可以直接使用const_cast,也是唯一允許的轉換做法。
3.reinterpert_cast(重解釋轉換)
這是最不安全的一種轉換機制,最有可能出現問題,reinterpret_cast把對象假想為模式,是一個完全不同類型的對象,在使用reinterpret_cast做任何事之前,實際上總是需要reinterpret_cast轉換回原來的類型。C++中的reinterpret_cast主要是將數據從一種類型準換位另一種類型。所謂“通常為操作數的位模式提供較低層的重新解釋”也就是說將數據以二進制存在形式的重新解釋。
4.dynamic_cast(動態轉換)
針對繼承體系中,主要用于類型安全的向下轉換。
以上就是小編為大家帶來的xxx_cast類型轉換的實現方法全部內容了,希望大家多多支持武林網~
|
新聞熱點
疑難解答
圖片精選