我试图实现方法链接在C++中,这原来是很容易的,如果一个类的构造函数调用是一个单独的语句,如:方法链,包括类的构造函数
Foo foo;
foo.bar().baz();
但是一旦当构造函数调用成为方法链的一部分时,编译器会抱怨期待“;”代替“。”。在构造函数调用后立即:
Foo foo().bar().baz();
我想知道现在,如果这实际上可能在C++中。这里是我的测试类:
class Foo
{
public:
Foo()
{
}
Foo& bar()
{
return *this;
}
Foo& baz()
{
return *this;
}
};
我还发现了一个例子在C++这似乎正是我在寻找“流利接口”(http://en.wikipedia.org/wiki/Fluent_interface#C.2B.2B)。但是,对于该代码,我得到相同的编译器错误。
这是什么编译器? – 2010-05-20 19:39:55
哦,我忘了提这个:Visual Studio 2010(Professional)。 – jena 2010-05-20 19:46:01
Foo foo = bar()。baz()。bang(); – 2013-07-12 17:28:51