在成员函数中返回类对象是什么意思?

凯尔蓝

我对使用C ++编程很陌生,所以如果这很愚蠢,请抱歉。我一直在研究c ++入门书,有些事情我无法理解。以这个功能为例:

Sales_data& Sales_data::combine(const Sales_data &rhs)
{
    units_sold += rhs.units_sold;
    revenue += rhs.revenue;
    return *this;
}

我们使用以下函数调用该函数:

total.combine(trans);

我知道总对象中的销售单位和收入将与反式对象中的单位和收入相结合,非常类似于复合赋值运算符(+ =)。

我知道这将返回总对象,但是我没有得到返回总对象的含义...

songyuanyao

通过引用返回(返回到被调用的对象)意味着您可以将调用链接在一个行代码中;所有这些调用将绑定到同一对象:

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

用C ++代码返回对象是什么意思?

COM对象是什么意思?

对象是什么意思?

将对象“存储”在类中是什么意思?

函数calcDecrement的返回类型中的“()”是什么意思?

可腌制(或可腌制)的对象是什么意思?

Python对象是否“可订阅”是什么意思?

“类不是对象”是什么意思?

返回函数*(){...}是什么意思?

::在类签名中是什么意思?

<>在类名中是什么意思?

Modelica中的“类”是什么意思?

“在b中返回a”是什么意思?

Postgresql函数中的“ $$”是什么意思?

R中%>%函数是什么意思?

在 c 函数中 ... 是什么意思

这些迹象是什么意思?^ @

成员函数签名末尾的&(&)号是什么意思?

“成员函数已定义或声明”-这是什么意思?

GotW #88 中的“它不适用于作为对象成员的引用”是什么意思?

PHP中的成员函数名称后的冒号(:)运算符是什么意思

内置函数dir()返回“给定对象的(某些)属性”是什么意思?

Go中的函数的通道返回类型中的`<-'是什么意思?

类的函数声明后,“默认”是什么意思?

在Java中声明对象时(类名)是什么意思-Android

isalpha的返回值是什么意思(在其他ctype.h函数中)?

让成员函数返回类型成为要返回的实际对象的超类的正确方法是什么?

“ this”引用是指当前正在执行的对象是什么意思?

将{}分配给已经存在的对象是什么意思?