Remarque
L’accès à cette page requiert une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page requiert une autorisation. Vous pouvez essayer de modifier des répertoires.
Section spécifique à Microsoft
Cet attribut peut être appliqué à des « données membres virtuelles » non statiques dans une définition de classe ou de structure. Le compilateur traite ces « données membres virtuelles » comme des données membres en changeant leurs références en appels de fonction.
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
Notes
Lorsque le compilateur voit un membre de données déclaré avec cet attribut à droite d’un opérateur de sélection de membre (« . » ou « ->« ), il convertit l’opération en une get ou put une fonction, selon qu’une telle expression est une valeur l ou une valeur r. Dans des contextes plus compliqués, tels que «+= », une réécriture est effectuée en effectuant à la fois get et put.
Cet attribut peut également être utilisé dans la déclaration d'un tableau vide dans une définition de classe ou de structure. Par 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] est converti en i=p->GetX(a, b) et p->x[a][b] = i est converti en p->PutX(a, b, i);
FIN de la section spécifique à Microsoft
Exemple
// declspec_property.cpp
struct S {
int i;
void putprop(int j) {
i = j;
}
int getprop() {
return i;
}
__declspec(property(get = getprop, put = putprop)) int the_prop;
};
int main() {
S s;
s.the_prop = 5;
return s.the_prop;
}