C++对返回*this的成员函数的重复调用顺序
C++ Order of Repeated Calls to Member Functions that return *this
所以,假设我创建了一个具有成员函数的对象,如下所示:
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)
;
状态更新的顺序是否保证了状态1将在状态2之前应用于状态3?启用优化的情况如何?
可以保证程序的行为就像按照编写的顺序调用方法一样。
方法将按该顺序调用,以便可以返回对该类的引用,从而可以进行后续(链式)调用。优化对此没有影响。因此,是的,对象的_state
通过每次连续调用进行更新。
相关文章:
- 以 f() + g() 调用顺序的 C++ 函数
- 如何创建跟踪以显示存在递归的调用顺序
- 析构函数的奇怪调用顺序
- 输入法管理器函数 - 平假名到汉字候选列表 c++ covnersion 的正确调用顺序
- 构造函数的调用顺序
- 模板func和非模板func调用顺序
- C++对返回*this的成员函数的重复调用顺序
- 在C++中,析构函数的调用顺序和成员变量的销毁顺序是什么
- XSetWMProtocols 和 glXCreateContext 在多线程环境中调用顺序
- __attribute__((构造函数)) 调用顺序混淆
- 此代码是否依赖于函数调用顺序未定义的行为
- 如何强制实施析构函数的调用顺序
- C++在递归函数中平衡了树/调用顺序
- 构造调用顺序(C++)
- 无法理解析构函数调用顺序
- 构造函数调用顺序与组合
- 构造函数/析构函数在堆栈上的调用顺序
- 递归到迭代,保留变量和调用顺序
- Qt队列连接中的插槽调用顺序
- visual studio-C++函数调用顺序(boost)-混乱