C 中修改const成員變數

2021-06-21 04:20:12 字數 553 閱讀 4041

在c++中,被const修飾的變數,表示其不可變。當然c++提供了型別轉換操作符const_cast,用來將變數的const屬性臨時性地去掉。

如果在乙個類裡面有乙個const成員變數,我們如何在成員函式中修改它呢?

class test

};

那麼我們可以寫這麼乙個函式

void test::seta(int _a)

現在如果seta是test的const成員函式,那麼上述編譯會通過嗎?答案是可以的,因為const_cast將a的const屬性去掉了。

void test::seta(int _a) const

當然,我們也可以通過在test中增加乙個指標或引用,然後隨時通過這個指標或引用來改變a的值。

class test

void seta(int _a) };

int main()

C 中const變數的修改

今天偶然在群裡看到這樣乙個問題 include int main 求輸出結果,只要掌握const變數的一些知識應該會得出答案a 10,p 20,但是這個題還有價值可究,如為什麼在偵錯程式中執行完後 a 20,p 20呢?如圖,為此群裡有個大神找到了這樣一篇文章 簡單介紹一下const變數,const...

C 之const類成員變數,const成員函式

const修飾類的成員函式 const修飾變數一般有兩種方式 const t a,或者 t const a,這兩者都是一樣的,主要看const位於 的左邊還是右邊,這裡不再贅述,主要來看一下當const修飾類的成員函式時,成員函式有什麼特點。類的成員函式後面加 const,表明這個函式不會對這個類物...

const 成員變數

class mytestclass public const int m ciint const string m csstr static int m siint static string m ssstr const static int m csiint const static string...