Sto cercando di implementare il metodo concatenamento in C++, che si rivela essere abbastanza facile se la chiamata al costruttore di una classe è una dichiarazione separata, ad esempio:metodo di concatenamento tra cui costruttore della classe
Foo foo;
foo.bar().baz();
Ma non appena quando la chiamata del costruttore diventa parte della catena del metodo, il compilatore si lamenta di aspettarsi ";" al posto di "." immediatamente dopo la chiamata al costruttore:
Foo foo().bar().baz();
Mi chiedo ora se questo è in realtà possibile in C++. Qui è la mia classe di test:
class Foo
{
public:
Foo()
{
}
Foo& bar()
{
return *this;
}
Foo& baz()
{
return *this;
}
};
Ho trovato anche un esempio per "interfacce fluenti" in C++ (http://en.wikipedia.org/wiki/Fluent_interface#C.2B.2B) che sembra essere esattamente quello che sto cercando. Tuttavia, ottengo lo stesso errore del compilatore per quel codice.
Che compilatore è questo? –
Oh, ho dimenticato di dirlo: Visual Studio 2010 (Professional). – jena
Foo foo = bar(). Baz(). Bang(); –