【发布时间】:2016-06-11 10:52:27
【问题描述】:
给定以下类:
struct Object {
int x, y;
void addtoall( int value ){ x += value; y += value; };
Object& addtoall( int value ){ x += value; y += value; return *this; };
};
这两个成员函数有什么区别?
我了解某些运算符重载(例如: operator+= )需要返回对 self 的引用,但不包括运算符重载,是否有必要?如果没有,您何时希望或需要返回对 self 的引用而不是返回 void?
如果这可以通过 google-fu 找到,或者是一个非常基本的问题,我深表歉意,但我不确定到底要搜索什么(并不是因为缺乏尝试)。
【问题讨论】:
-
它允许方法链接,通常用作“流畅接口”的一部分。这些字词很容易通过 Google 搜索。
-
啊!甚至没有想过要链接。
-
在接受后人的答案之前,我会稍等片刻,但感谢你们如此迅速地回答并澄清了这一点。
标签: c++ reference void method-chaining