›C++【C++】constメンバ関数の詳細解説と各種エラーの対処方法constオブジェクトのメンバ関数が呼び出せずエラーが発生してしまった。LLDBのデバッガコマンドも使えない。expressionこの場合、print関数にconst修飾子を指定することで対処出来る。"hello"constメンバ関数ここで使用したconst修飾子には、対象の関数がメンバ変数を変更しないものであることを明示する役割がある。して宣言された関数はconstメンバ関数と呼ばれ、const宣言されたオブジェクトからも呼び出せるようになる。const修飾された関数はメンバ変数の変更が出来なくなる。}};非constメンバ関数の呼び出しまたconstメンバ関数から非constメンバ関数を呼び出すことも当然出来ない。}};mutable修飾子ただし、mutable宣言されたメンバ変数はconstメンバ関数からでも例外的に変更できるようになる。OK};constオブジェクト本来の用途を考えれば、むやみやたらに使うべき機能ではないが、演算用のキャッシュやオブジェクトの参照カウントを保持する等、例外的な用途での利用シーンが考えられる。メンバ変数の関数呼び出しconstメンバ関数はメンバ変数の非メンバ変数を呼び出せないという特徴もある。ポインタ変数のメンバ関数については問題なく呼び出せてしまう点に注意したい。}};非constメンバ関数が呼び出せない理由constメンバ関数からメンバ変数の書き換えや非constメンバ関数の呼び出しが行えない理由は、constメンバ関数内のthisポインタが暗黙的にconst修飾されるためである。以下のコードと同様の解釈が行われるため、自身の書き換えや非constメンバ関数の呼び出しが行えなくなっている。