C++ 之const_cast常見用法

C++提供了四個轉換運算符:
1. const_cast (expression)
2. static_cast (expression)
3. reinterpret_cast (expression)
4. dynamic_cast (expression)

const_cast (expression)

用const_cast來去除const限定

const int constant = 21;
const int* const_p = &constant;
int* modifier = const_cast<int*>(const_p);
*modifier = 7;

這樣修飾後,就可以順利編譯通過。

原因:我們可能調用了一個參數不是const的函數,而我們要傳進去的實際參數確實const的,但是我們知道這個函數是不會對參數做修改的。於是我們就需要使用const_cast去除const限定,以便函數能夠接受這個實際參數。

使用const_cast去除const限定的目的絕對不是爲了修改它的內容,只是出於無奈

發佈了34 篇原創文章 · 獲贊 6 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章