property (C++)
Sezione specifica Microsoft
L'attributo può essere applicato ai "membri dati virtuali" non statici in una definizione di classe o struttura. Il compilatore considera questi "membri dati virtuali" come membri dati modificando i riferimenti nelle chiamate di funzione.
Sintassi
__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
Osservazioni:
Quando il compilatore vede un membro dati dichiarato con questo attributo a destra di un operatore di selezione membro ("." o "->"), converte l'operazione in una get
funzione o put
, a seconda che tale espressione sia un valore l o un valore r. In contesti più complessi, ad esempio "+=
", viene eseguita una riscrittura eseguendo sia get
che put
.
Questo attributo può anche essere utilizzato in una dichiarazione di una matrice vuota in una definizione di classe o struttura. Ad esempio:
__declspec(property(get=GetX, put=PutX)) int x[];
L'istruzione sopra indica che x[]
può essere utilizzato con uno o più indici di matrice. In questo caso, i=p->x[a][b]
si trasformerà in i=p->GetX(a, b)
e p->x[a][b] = i
si trasformerà in p->PutX(a, b, i);
Fine sezione specifica Microsoft
Esempio
// 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;
}
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per