C++メンバー関数のconst修飾子
2228 ワード
C++ソースコードの中にはconst修飾の関数がよく見られますが、ここのconstは置く位置に関係なく、つまり次の3つの書き方が等価です.ただ、通常は1つ目の書き方を使って、関数を書いてテストすることができます.ここのconstは関数の位置に書いてありますが、実は隠しているthisポインタを修飾するために使われています.このときthisポインタは対象を指しているので、つまりthisが指すオブジェクトは修正できません
void OpVar(int a, int b) const //1
void const OpVar(int a, int b) //2
const void OpVar(int a, int b) //3
// const
// const ?
// const
// const this , , const
void OpVar(int a, int b) const // void OpVar(const Test *const this, int a, int b) const
{
// a = 100; //
// this->a = 100; // this
}