właściwość (C++)
Specyficzne dla firmy Microsoft
Ten atrybut można zastosować do niestacyjnych "wirtualnych składowych danych" w definicji klasy lub struktury. Kompilator traktuje te "wirtualne elementy członkowskie danych" jako elementy członkowskie danych, zmieniając odwołania do wywołań funkcji.
Składnia
__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
Uwagi
Gdy kompilator widzi element członkowski danych zadeklarowany za pomocą tego atrybutu po prawej stronie operatora wyboru elementu członkowskiego ("." lub "->"), konwertuje operację na get
funkcję lub put
w zależności od tego, czy takie wyrażenie jest wartością l, czy wartością r. W bardziej skomplikowanych kontekstach, takich jak "+=
", ponowne zapisywanie jest wykonywane przez wykonywanie zarówno polecenia get
, jak i put
.
Ten atrybut może być również używany w deklaracji pustej tablicy w definicji klasy lub struktury. Przykład:
__declspec(property(get=GetX, put=PutX)) int x[];
Powyższa instrukcja wskazuje, że x[]
może być używany z co najmniej jednym indeksem tablicy. W tym przypadku i=p->x[a][b]
zostanie przekształcony w i=p->GetX(a, b)
, a p->x[a][b] = i
zostanie przekształcony w p->PutX(a, b, i);
END Microsoft Specific
Przykład
// 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;
}
Zobacz też
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla