property (C++)
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;
}
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour