1

C++ Builder 中的 __properties 是按引用传递还是按值传递?...例如

 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 的编译器。这背后的意义是什么?

4

1 回答 1

0

Remy Lebeau 在评论中回答了我的问题:

声明一个像

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

即使DataType未声明为引用,也提供对FMember的直接访问。因此,如果您有一个将DataType&引用作为输入的函数,并将PropName传递给函数,编译器仍然可以通过引用该函数来优化和传递FMember 。

于 2017-01-01T10:01:08.370 回答