Я пытаюсь реализовать метод цепочки в 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 (Professional). – jena
Foo foo = bar(). Baz(). Bang(); –