所以我写了很多 JS,而且我是 this 语法功能的粉丝。我不确定this 的名称,但下面是一个示例。
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
}
关于javascript - 可以在 C++ 中模仿这种 JS 语法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22135938/