C言語のエラー

式は変更可能な左辺値である必要があります。

  1. 関数の戻り値が参照はなくて、その戻り値に代入しようとした時。
  2. const関数内で何かに代入しようとしたとき。

エラーにならない例

char& CMiffy::operator[](std::size_t _position){
    return mText[_position];
}
CMiffy mf("hello");
mf[0]='M';

エラーになる例

char CMiffy::operator[](std::size_t _position){//&がない!
    return mText[_position];
}
CMiffy mf("hello");
mf[0]='M';//ここでエラーになる

解決策

  1. 関数の戻り値を参照にすること。
  2. 代入しようとしている変数にmutable修飾子をつけること。
サポートサイト Wikidot.com