【发布时间】:2011-02-22 01:26:40
【问题描述】:
我正在尝试在 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) 中找到了一个“流畅接口”示例,这似乎正是我正在寻找的。但是,对于该代码,我得到了相同的编译器错误。
【问题讨论】:
-
哦,我忘了提这个:Visual Studio 2010(专业版)。
-
Foo foo = bar().baz().bang();
标签: c++ constructor methods chaining