Udostępnij za pośrednictwem


właściwość (C++)

Specyficzne dla firmy Microsoft

Ten atrybut może być stosowany do niestatycznych "wirtualnych elementów członkowskich danych" w definicji klasy lub struktury.Kompilator traktuje te "wirtualnych elementy członkowskie danych" jako elementy danych, zmieniając ich odwołania do wywołania funkcji.

__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

Kiedy kompilator zauważa element członkowski danych zadeklarowany z atrybutem po prawej stronie operatora wyboru elementów członkowskich ("." lub "->"), konwertuje operację do funkcji get lub put, w zależności od tego, czy takie wyrażenie jest l-wartości, czy też r-wartości.W bardziej skomplikowanych kontekstach, takich jak "+=", przepisanie odbywa się wykonując obie funkcje get i put.

Atrybut ten można również użyć 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żywane z jednym lub z kilkoma indeksami tablicy.W tym przypadku i=p->x[a][b] zostanie przekształcone do i=p->GetX(a, b), i p->x[a][b] = i zmieni się w p->PutX(a, b, i);

KONIEC informacji specyficznych dla firmy Microsoft

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ż

Informacje

__declspec

Słowa kluczowe języka C++