Propriétés statiques

De RAD Studio
Aller à : navigation, rechercher

Remonter à Classes - Index

Les propriétés statiques ont été implémentées dans C++Builder 2009 pour améliorer la compatibilité avec le langage Delphi

Déclaration des fonctions de classe comme statiques

Si les fonctions d'accès aux propriétés (getters et setters) sont déclarées comme statiques, vous pouvez utiliser la propriété directement depuis la classe sans spécifier un objet. Par exemple :

class TMyClass : TComponent {
  static int x;
  static int GetX() { return x; }
  static void SetX( int i ) { x = i; }

  __property int X = { read = GetX, write = SetX }
};

TMyClass::X = 5;
int y = TMyClass::X;

Delphi permet également les méthodes statiques simples comme les getters (lecture) et les setters (écriture) de propriétés. Notez que ces méthodes statiques ne sont pas des méthodes de classe ; il n'y a pas de paramètre caché. Par exemple :

class TTest{
  static int __fastcall GetCount();
  static void __fastcall SetCount(int I);
public:
  __property int Count = {read=GetCount, write=SetCount};
};

Dans ce cas, vous pouvez alors utiliser les propriétés comme ceci :

int c = TTest::Count;
TTest t;
int i = t.Count;

Le compilateur C++ supporte déjà les propriétés statiques qui sont mappées en variable de membre. Par exemple :

class TEncoding  {
   static int Prop;
 public:
   __property int Count = { read=Prop };
};
int f(TEncoding& t) {
   return t.Count;
}

Voir aussi