Передача данных C++Builder "__property"

__Properties в C++ Builder передаются по ссылке или по значению? ...например

 class TMyClass
 {
 private:
     int FMyFoo1;

     int GetMyFoo2();
     void SetMyFoo2(int AMyFoo2);

 public:
     __property int MyFoo1 = {read=FMyFoo1, write=FMyFoo1};
     __property int MyFoo2 = {read=GetMyFoo2, write=SetMyFoo2};
 };

Также вы можете добавить оператор & в __properties, например

 __property int &MyFoo = {read=FMyFoo};

но только с компиляторами на основе Clang. Что за этим стоит?

1 ответ

Реми Лебо ответил на мой вопрос в комментарии:

Объявление свойства как

__property DataType PropName = {read=FMember, write=FMember}; 

предлагает прямой доступ к FMember, даже если DataType не объявлен как ссылка. Итак, если у вас есть функция, которая принимает DataType & reference в качестве ввода и передает PropName в функцию, компилятор все равно может оптимизировать и передать FMember по ссылке на функцию.

Другие вопросы по тегам