E2492 Les propriétés peuvent uniquement être assignées en utilisant une instruction simple, par exemple \"prop = valeur;\" (C++)

De RAD Studio
Aller à : navigation, rechercher

Remonter à Erreurs et avertissements du compilateur (C++) - Index

Les affectations de propriétés doivent être effectuées dans des instructions d'affectation simples. Si les affectations de propriétés pouvaient devenir des Lvalues, ce qui arrive lorsque les affectations de propriétés sont imbriquées dans des instructions plus grandes, le getter est appelé pour créer la Lvalue, avec tous les effets de bord causés par le getter. Le compilateur n'autorise qu'un appel soit au getter soit au setter dans une instruction.

Par exemple :

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);  // Ceci provoque une erreur
}