E2492 プロパティは "prop = value;" などの単純式の時に限り代入できる (C++)

提供: RAD Studio
移動先: 案内検索

コンパイラのエラーと警告(C++):インデックス への移動

プロパティへの代入は,単純な代入文で行う必要があります。プロパティへの代入がほかの文に埋め込まれている場合は,プロパティへの代入が Lvalue になります。このとき,Lvalue を作成するために取得メソッドが呼び出されますが,同時に取得メソッドによる副作用があります。1 つの文では,取得メソッドまたは設定メソッドのどちらかを 1 回だけ呼び出すことができます。

例を示します。



 class myClass
 {
   int X;
   public:
   int __property x = { read=getx, write=putx };
   int getx() { return X; }
   void putx(int val) { X = val; }
 } OneClass;
 int value(int);
 int main()
 {
   return value(OneClass.x = 4);  // これはエラーになります
 }