__declspec(property)

Aus Appmethod Topics
Wechseln zu: Navigation, Suche

Nach oben zu Schlüsselwörter alphabetisch - Index


Kategorie

Modifizierer, Schlüsselwort-Erweiterungen, Speicherklassenspezifizierer

Syntax

__declspec( property( get=get_func_name ) ) declarator
__declspec( property( put=put_func_name ) ) declarator
__declspec( property( get=get_func_name, put=put_func_name ) ) declarator

Hinweis: Der Spezifizierer __declspec(property) wird aus Kompatibilitätsgründen zu Microsoft unterstützt. Diese Seite basiert auf der entsprechenden MSDN-Seite. Verwenden Sie für die Appmethod-Bibliotheken die Appmethod C++-Schlüsselwort-Erweiterung __property.

Dieses Attribut kann für nicht-statische "virtuelle Datenelemente" in einer Klassen- oder Strukturdefinition verwendet werden. Der Compiler behandelt diese virtuellen wie normale Datenelemente, indem ihre Verweise in Funktionsaufrufe geändert werden.

Trifft der Compiler auf ein mit diesem Attribut deklariertes Datenelement auf der rechten Seite eines Zugriffsoperators ("." oder "->"), wird die Operation je nachdem, ob der Ausdruck ein l- oder r-Wert ist, in eine get- oder put-Funktion konvertiert. In komplexeren Situationen (z.B. "+=") wird ein Neuschreiben mit sowohl get als auch put ausgeführt.

Dieses Attribut kann auch in der Deklaration eines leeren Arrays in einer Klassen- oder Strukturdefinition verwendet werden.

Beispiel

 __declspec(property(get=GetX, put=PutX)) int x[];

Diese Anweisung gibt an, dass x[] mit einem oder mehreren Array-Indizes verwendet werden kann. Somit wird:

  i=p->x[a][b];

in folgende Anweisung umgewandelt:

i=p->GetX(a, b);

und

p->x[a][b] = i;

in folgende Anweisung umgewandelt:

p->PutX(a, b, i);

Siehe auch