使用级联成员函数有什么好处

Lor*_*rek 3 c++ pointers

所以我只是通过返回 *this 指针来处理级联成员函数调用。我知道它是如何机械地工作的,但它看起来像是在实现使用点运算符获得单行链函数调用的次要能力的函数方面的大量时间投资。我确信除了简单地缩短成员函数调用之外,肯定还有其他一些好处,但关于这个主题的信息确实不多。google 的前几页只提供了关于如何实现级联函数调用的说明,并没有说明为什么、如何或在哪里使用这种技术。任何人都有一些有用的链接,可以更深入地涵盖该主题?谢谢。

Öö *_*iib 5

当操作的链接有意义时,好处是对于类的用户来说更好看的代码。例如:

 rect.left( 10 ).top( 5 ).right( 50 ).bottom( 40 );
Run Code Online (Sandbox Code Playgroud)

这可能比阅读更好:

 // longer code
 rect.left( 10 );
 rect.top( 5 );
 rect.right( 50 );
 rect.bottom( 40 );
Run Code Online (Sandbox Code Playgroud)

或者:

 // reader should remember order of parameters
 rect.move_to( 10, 5, 50, 40 ); 
Run Code Online (Sandbox Code Playgroud)