property (C++)

Только для систем Microsoft

Этот атрибут можно применять к нестатический "фактически элементам данных" в определении класса или структуры.Компилятор рассматривает эти виртуальные элементы данных" "в качестве элементов данных, изменив их ссылки в вызовы функций.

__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

Заметки

Когда компилятор, см. элемент данных, объявленный с этим атрибутом, которая находится справа от оператора участник-выделения ("."или"- >"), она преобразует операции к a получить OR ПОМЕСТИТЕ функция, в зависимости от того, такое выражение l-значение или правостороннего значения.В более осложненных контекстах, например "+="переработанный версий осуществляется посредством внесения оба получить и ПОМЕСТИТЕ.

Этот атрибут также может использоваться в объявлении пустого массива в определении класса или структуры.Примеры.

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

На выписку показано выше, x[] может использоваться с одним или несколькими индексами массива.В этом случае i=p->x[a][b] станет в i=p->GetX(a, b)и p->x[a][b] = i станет в p->PutX(a, b, i);

ЭЛЕМЕНТ, относящийся Майкрософт

Пример

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

См. также

Ссылки

__declspec

Ключевые слова C++