property (C++)

Specifické pro Microsoft

Tento atribut lze použít pro nestatické "virtuální datové členy" v definici třídy nebo struktury.Kompilátor zpracovává tyto "virtuální datové členy" jako datové členy změnou jejich odkazů na volání funkce.

__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

Poznámky

Když kompilátor narazí na datový člen deklarovaný pomocí tohoto atributu na pravé straně operátoru výběr členů ("." nebo "–>"), převede operaci na funkci get nebo put, v závislosti na tom, je-li tento výraz l hodnota nebo r hodnota.U více komplikovaných kontextů, jako je "+=", je provedena revize pomocí get a put.

Tento atribut lze použít také v deklaraci prázdného pole v definici třídy nebo struktury.Příklad:

__declspec(property(get=GetX, put=PutX)) int x[];

Výše uvedený příkaz označuje, že x[] lze použít s jedním nebo více indexů pole.V tomto případě bude i=p->x[a][b] převeden na i=p->GetX(a, b) a p->x[a][b] = i bude převeden na p->PutX(a, b, i);

Specificka produktu Microsoft END

Příklad

// 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;
}

Viz také

Referenční dokumentace

__declspec

Klíčová slova jazyka C++