Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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. Na 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;
}