__declspec(property)
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 RAD Studio-Bibliotheken die C++Builder-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);