利用const cast進行型別轉換

2021-07-04 18:35:37 字數 477 閱讀 5978

const_cast轉換用於去掉物件的const屬性。

const_cast雖然去掉了物件的const屬性,但const常量的值並沒有改變,即使指標指向該常量,並嘗試修改。c++稱這種行為為「未定義行為」,所謂未定義是說該語句在c++語法當中沒有明確規定,由編譯器決定該如何處理。

去掉const屬性並非為了修改它的值,而是在函式呼叫中可能需要去掉const屬性。我們可能呼叫了乙個引數不是const的函式,而我們要傳進去的實際引數確實const的,但是我們知道這個函式是不會對引數做修改的。於是我們就需要使用const_cast去除const限定,以便函式能夠接受這個實際引數。

型別轉換 const cast

const對變數型別加以限定,使得其具有常量性,只能執行不修改其內容的操作。在型別轉換運算子中,const cast可以改變const型別的常量性,使得其可以修改。下面是const cast的指標轉換 引用轉換以及單純的指標方法修改const型別 includeint main 執行結果是 005e...

強制型別轉換 const cast

const cast的作用 一 常量指標 被強轉為 非常量指標,且仍然指向原來的物件 二 常量引用 被強轉為 非常量引用,且仍然指向原來的物件 三 常量物件 被強轉為 非常量物件。例項 如下 1 include 2 using namespace std 34 const int xx 50 5 6...

C 型別轉換詳解 const cast

一.函式描述 const cast type id expression 主要是用來去掉const屬性,當然也可以加上const屬性。主要是用前者,後者很少用。去掉const屬性 const case num 常用,因為不能把乙個const變數直接賦給乙個非const變數,必須要轉換。加上const...