【C言語】increment of read-only member ‘xxx’

“increment of read-only member ‘xxx'” というエラーメッセージは、読み取り専用のメンバ変数に ++ 演算子を適用しようとした場合に表示されます。

例えば、次のようなクラスを定義したとします。

class MyClass {
public:
  const int x;
  MyClass(int x) : x(x) {}
};

このクラスには、読み取り専用のメンバ変数 x が定義されています。この変数は、クラスのコンストラクタで初期化されるだけで、後から値を変更することはできません。

そのため、次のようなコードは “increment of read-only member ‘x'” というエラーを引き起こします。

MyClass obj(10);
obj.x++;

読み取り専用の変数に対して ++ 演算子を適用することは、一般的には意味がありません。そのため、このようなコードは書くべきではありません。

コメント

タイトルとURLをコピーしました