所以我只是通过返回* this指针来讨论级联成员函数调用。我得到了它的机械工作原理,但它看起来像是在实现函数的大量时间投入,以获得使用点运算符的一个线链函数调用的次要能力。我确信除了简单地缩短成员函数调用之外,还有一些其他好处,但实际上关于这个主题的信息并不多。 google的前几页只提供了有关如何实现级联函数调用的说明,而没有说明此技术可能有用的原因,方法或位置。任何人都有一些有用的链接可能会更深入地涵盖主题?感谢。
答案 0 :(得分:4)
当操作链接有意义时,好处是为类的用户提供更好看的代码。例如:
rect.left( 10 ).top( 5 ).right( 50 ).bottom( 40 );
这可能比其中任何一个更好:
// longer code
rect.left( 10 );
rect.top( 5 );
rect.right( 50 );
rect.bottom( 40 );
或者:
// reader should remember order of parameters
rect.move_to( 10, 5, 50, 40 );
答案 1 :(得分:1)
有时候,我觉得非常罕见,但我看到了这样的使用(通常在单元测试中):
OR
(例如设置标志)