我对使用C ++编程很陌生,所以如果这很愚蠢,请抱歉。我一直在研究c ++入门书,有些事情我无法理解。以这个功能为例:
Sales_data& Sales_data::combine(const Sales_data &rhs)
{
units_sold += rhs.units_sold;
revenue += rhs.revenue;
return *this;
}
我们使用以下函数调用该函数:
total.combine(trans);
我知道总对象中的销售单位和收入将与反式对象中的单位和收入相结合,非常类似于复合赋值运算符(+ =)。
我知道这将返回总对象,但是我没有得到返回总对象的含义...
通过引用返回(返回到被调用的对象)意味着您可以将调用链接在一个行代码中;所有这些调用将绑定到同一对象:
total.combine(trans).combine(trans2).combine(trans3);
等效于:
total.combine(trans);
total.combine(trans2);
total.combine(trans3);
(当然,这并不意味着您必须调用相同的方法,您可以将其与具有类似特征的其他方法混合使用。)
这种习惯用法经常使用在像运营商的实现方式中operator=
,operator<<
,operator>>
等等,这也是可能的,以与链接调用:
a = b = c;
cout << a << b << c;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句