在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...