Statische Eigenschaften

Aus Appmethod Topics
Wechseln zu: Navigation, Suche

Nach oben zu Klassen - Index

In Appmethod C++ 2009 wurden statische Eigenschaften implementiert, um die Kompatibilität mit der Object Pascal-Sprache zu verbessern

Deklarieren von statischen Klassenfunktionen

Wenn Eigenschaftszugriffsfunktionen (Getter und Setter) als statisch deklariert sind, können Sie die Eigenschaft direkt aus der Klasse ohne Angabe eines Objekts verwenden. Zum Beispiel:

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;

Object Pascal lässt auch reine statische Methoden zum Ermitteln und Setzen (Getter und Setter) von Eigenschaften zu. Beachten Sie bitte, dass diese statischen Methoden keine Klassenmethoden sind; es gibt keinen verborgenen Parameter. Zum Beispiel:

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

In diesem Fall können Sie die Eigenschaften so verwenden:

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

Der C++-Compiler unterstützt bereits statische Eigenschaften, die eine Zuordnung zu einer Member-Variable vornehmen. Zum Beispiel:

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

Siehe auch