我正在阅读教科书,然后我遇到了上面的功能" Sales_data :: combine()"。
如果我这样做
Total.combine(trans);
其中Total和trans是Sales_data,在此函数调用之后,对象Total会被更改吗?什么是返回* this的重点?
答案 0 :(得分:6)
在此函数调用之后,对象
Total
是否会被更改?
如果trans.units_sold
和/或trans.revenue
不为零,则会更改,因为Total
中的相同字段会受到函数实现中+=
语句的影响。
返回* this的重点是什么?
它允许您将更多调用链接到成员函数,因此您可以执行以下操作:
Total.combine(trans1).combine(trans2);
这会将trans1
和trans2
的值合并到Total
。
如果Sales_data
有其他功能,您可以使用combine
的返回值来访问它们。例如,如果有operator<<(std::ostream&, const Sales_data&)
函数用于流式传输Sales_data
对象,则可以写...
std::cout << Total.combine(trans1) << '\n';
...在从trans1
打印更新值之前,会将Total
中的值合并到Total
。