Sdílet prostřednictvím


property (C++)

Konkrétní společnosti Microsoft

Tento atribut lze použít k nestatickému "virtuální datové členy" v definici třídy nebo struktury.Kompilátor zpracovává tyto "virtuální datové členy" jako členové dat změnou jejich odkazy do 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 vidí člena deklarována pomocí tohoto atributu na pravé straně operátoru výběr členů ("."nebo"->"), převede na operace získat nebo put funkce v závislosti na tom, zda je takový výraz hodnotu l nebo hodnota.V další komplikované kontexty, jako například "+=", revize se provádí tímto způsobem i získat a put.

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

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

Výše uvedené prohlášení označuje, že x[] lze použít s indexy jednoho nebo více polí.V tomto případě i=p->x[a][b] bude převeden i=p->GetX(a, b), a p->x[a][b] = i bude převedenp->PutX(a, b, i);

Konec konkrétní společnosti Microsoft

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ých slov jazyka C++