以下の内容はhttps://toburau.hatenablog.jp/entry/20090320/1237559888より取得しました。


constメンバ関数とmutable

クラスのメンバ関数名の後ろにconstを付けるとオブジェクトの内容を変更できなくなる。

class Test {
    int num;
public:
    int func(int n) const {
        num = n; // コンパイルエラー
    }
};

mutableキーワードを付けたメンバ変数はconstメンバ関数でも値を変更できる。

class Test {
    int num;
    mutable int num2;
public:
    int func(int n) const {
        //num = n;
        num2 = n; // コンパイルできる
    }
};

constメンバ関数でも値を変更できないだけで、参照することはできる。
外からオブジェクトの内容を変更してほしくない、あるいは内容の変更が無いということを表すためにconstメンバ関数にしておくとよい。




以上の内容はhttps://toburau.hatenablog.jp/entry/20090320/1237559888より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14