__declspec(property)

De Appmethod Topics
Aller à : navigation, rechercher

Remonter à Liste alphabétique des mots clés - Index


Catégorie

Modificateurs, Extensions des mots clés, Spécificateurs de classe de stockage

Syntaxe

__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

Remarque : Le spécificateur __declspec(property) est supporté dans un souci de compatibilité avec Microsoft. Cette page a été adaptée depuis la page MSDN pour vous faciliter la tâche. Pour les bibliothèques Appmethod, utilisez l'extension de mot clé __property pour Appmethod C++.

Cet attribut peut être appliqué à des "membres de données virtuels" non statiques dans une définition de classe ou de structure. Le compilateur traite ces "membres de données virtuels" comme des membres de données en changeant leurs références dans les appels de fonction.

Quand le compilateur voit un membre de donnée déclaré avec cet attribut à droite d'un opérateur de sélection de membre ("." ou "->"), il convertit l'opération en une fonction get ou put, selon qu'une telle expression est un l-value ou un r-value. Dans des contextes plus complexes, tels que "+=", une ré-écriture est effectuée en exécutant à la fois get et put.

Cet attribut peut aussi être utilisé dans la déclaration d'un tableau vide dans une définition de classe ou de structure.

Exemple

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

L'instruction ci-dessus indique que x[] peut être utilisé avec un ou plusieurs index de tableau. Dans ce cas :

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

deviendra :

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

et

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

deviendra :

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

Voir aussi