使用级联成员函数可以获得什么好处

时间:2012-10-16 03:28:58

标签: c++ pointers

所以我只是通过返回* this指针来讨论级联成员函数调用。我得到了它的机械工作原理,但它看起来像是在实现函数的大量时间投入,以获得使用点运算符的一个线链函数调用的次要能力。我确信除了简单地缩短成员函数调用之外,还有一些其他好处,但实际上关于这个主题的信息并不多。 google的前几页只提供了有关如何实现级联函数调用的说明,而没有说明此技术可能有用的原因,方法或位置。任何人都有一些有用的链接可能会更深入地涵盖主题?感谢。

2 个答案:

答案 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(例如设置标志)
  • 很方便