當前位置:編程學習大全網 - 編程軟體 - 函數後面加constant是什麽意思呀

函數後面加constant是什麽意思呀

首先,是加const不是constant。

函數後面加const是表明這個函數不會更改class的狀態,即class內各成員變量的值。編譯器如果發現某個const函數裏改變了成員變量的值會報錯。比如下面這個例子。

struct A {

int i;

void set(int v) {i = v;} //不能加const,因為i值改變了。

int value() const {return i;} //正確,i值沒有改變。

int value2() const {return i++;} //錯誤,因為i值改變了。必須將const去掉。

};

如果函數比較復雜時,比如並不直接改變某個值,但是調用了其它函數,編譯器怎麽判斷函數是否const呢。可以看下面的例子。

struct B {

A a; //B裏包含壹個A類成員。

int func1() const {return a.value();} //正確,所調用的a.value()也是壹個const函數。

int func2() const {return a.value2();} //錯誤,a.value2()不是const函數。

};

也就是說,在const函數裏只能調用成員的const函數以保證成員狀態不會改變。

所以,在設計類的函數裏,區別const和非const函數並標記出來是個好習慣,既保證自己不會對類誤操作,也可以明示別人調用妳的類裏哪些會改變類狀態。

  • 上一篇:如何推斷微軟月薪5萬面試問題?
  • 下一篇:校外培訓補課管理暫行辦法
  • copyright 2024編程學習大全網