Partager via


property (C++)

Spécifique à Microsoft

Cet attribut peut être appliqué « aux données membres virtual » non statique dans une définition de classe ou de structure.Le compilateur traite ces données membres « virtual » en tant que données membres en modifiant leurs références dans les appels de fonction.

__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 détecte une donnée membre déclarée avec cet attribut à droite d'un opérateur member-selection (". » ou « - >"), il convertit l'opération à get ou la fonction de mettez , selon qu'une telle expression est une l-value ou un cast sur une valeur r.dans des contextes plus compliqués, tels que « += », une réécriture est effectuée en faisant get et mettez.

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[];

Les instructions ci-dessus indique qu' x[] peut être utilisé avec un ou plusieurs index de tableau.Dans ce cas, i=p->x[a][b] sera converti en i=p->GetX(a, b), et p->x[a][b] = i sera converti en p->PutX(a, b, i);

détail de FIN 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

Référence

__declspec

Mots clés C++