Передача данных 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 по ссылке на функцию.