C ++重复调用返回* this的成员函数的顺序

时间:2013-12-06 01:08:01

标签: c++

所以,假设我使用成员函数创建一个对象,如下所示:

template <typename T> class MyClass {
  T state_;
public:
  MyClass &MyFunction(stateType state) {
    Order_Dependent_Change_Of_State(state);
    return *this;
  }

};

现在,说我去做以下事情:

MyClass <sometype> IAmBeingLazyOrClever;
IAmBeingLazyOrClever
  .MyFunction(state1)
  .MyFunction(state2)
  .MyFunction(state3)
  ;

是否保证状态更新的顺序,以便在state3之前的state2之前应用state1?什么时候启用优化?

2 个答案:

答案 0 :(得分:1)

保证程序的行为就像按照所写顺序调用方法一样。

答案 1 :(得分:1)

这些方法将按顺序调用 ,以便可以返回对类的引用,以便进行后续(链接)调用。优化对此没有影响。所以,是的,通过每次连续调用更新对象的_state