“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++;
読み取り専用の変数に対して ++
演算子を適用することは、一般的には意味がありません。そのため、このようなコードは書くべきではありません。
コメント