【发布时间】:2015-06-23 12:26:28
【问题描述】:
我有一个班级,想为这个班级重载“+”和“=”运算符。所以我将 operator+ 实现为友元函数,将 operator= 实现为成员函数...
如果 operator= 的参数类型定义为引用,则无法运行以下行,因为右侧是一个值并且没有任何地址:
sum = A + B; // sum, A and B are objects of my class
但我希望能够执行此类分配,并且还希望通过引用将参数传递给 operator=(因为我班级的对象很大)。有可能还是我必须按值将参数传递给 operator=??
【问题讨论】:
-
你有什么理由选择
+的朋友功能和=的会员?
标签: c++ operator-overloading pass-by-reference pass-by-value