Operator <<
-
Hi, ich würd gerne den operator << für meine klasse haben. Aber nicht zur ausgabe, sondern zum schreiben in die klasse.
die klasse ist in etwa so
class Packet { private: std::vector<byte> data; }ich will jetzt einfach sowas schreiben können
Packet *p = new Packet(); p << "LOGOUT SUCCESSFUL" << endl; //oder int id = 1; std::string str = "muh"; p << "TEXT id:" << id << " text:" << str << "\n";Aber egal wie ichs probier es klappt nicht so wirklich, hoffe mir kann jemand helfen

-
#include <iostream> #include <string> #include <ostream> class Test { public: Test() {} Test& operator << ( const std::string& msg ) { m_data += msg; } const std::string& getData() const{ return m_data; } private: std::string m_data; }; std::ostream& operator<< ( std::ostream& o, Test& t ) { o << t.getData(); return o; } int main(int argc, char** argv) { Test a; int id = 1; a << "Hello World"; std::cout << a << std::endl; }Das funktioniert. Als kleine Orientierung :).
rya.
-
danke! das in allen beispielen << immer
std::ostream& operator<< ( std::ostream& o, Packet& t )überladen wurde hat mich total verwirrt, bin nichtmal auf die idee gekommen den operator mit einem parameter zu überladen
