因此,我写了很多JS,并且非常喜欢这种语法功能。我不确定这将被称为什么,但是下面是一个例子。
object.function1().function2().function3()
我知道JS可以做到这一点,因为一切都被视为一流对象。但是我想知道这在C ++中是否可行?还有一个简短的例子是什么?
在C ++中,this
是指向实例的指针。您必须取消引用它才能返回实例:
return *this;
如果要避免复制,以便可以对同一对象进行突变,则可以返回引用。这是一个例子:
struct X
{
X& f() { std::cout << ++x << std::endl; return *this; } /*
^^ ^^^^^^^^^^^^^ */
private:
int x = 0;
};
int main()
{
X x;
x.f().f().f(); // 1 2 3
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句