In meiner Klasse, überlastete ich den Betreiber < < umErreichen voll funktions Verschiebung Stromsyntax
MyObject << something1 << something2;
friend const std::string& operator<<(Logger& os, const std::string& msg);
zu erreichen, aber ich kann einfach tun:
MyObject < < something1;
Wenn ich den zweiten Stream-Eingang (something2) hinzufügen, bekomme ich einen Compiler-Fehler, der mir sagt, dass es keinen Operator für solche wie Eingabe gibt.
Meine Frage ist also: Wie kann ich die beabsichtigte Syntax erreichen?
Also bin ich gezwungen, os zu behandeln? Wenn ich MyObject als Referenz zurückgebe, habe ich das gleiche Problem. – harryPoker
Ist 'MyObject' ein' Logger' oder etwas anderes? Und was meinst du mit "handle" "os". Alles, was Sie tun müssen, ist, es so wie es ist zurückzugeben. – rici
Dank rici, ich habe es durch die Definition tat: Freund Logger & operator << (Logger & einzuloggen, const std :: string & msg); So, jetzt kann ich schreiben: MyObject << "msg 1" << msg 2" ; All davon ohne einen Strom in meiner Argumentliste zu haben. – harryPoker