[stl] mit << werte an memberfunktion?
-
wie kann man werte mit dem << operator an memberfunktionen übergeben?
(wie zbsp bei stringstreams)klappt das dann auch mit mehreren werten?
(member << string << int << string...)
-
class Klasse { int myInt; friend Klasse& operator << (Klasse& stream, int obj); }; Klasse& operator << (Klasse& stream, int obj) { stream.myInt = obj; return stream; } // Ermöglicht zB: Klasse obj; obj << 5;MfG SideWinder
-
class Test { public: void operator<<(string temp) { cout << temp << endl; } };so kann man nen string an die memberfunktion übergebn
(test << "hallo welt"; )1. wie wäre es möglich 2 oder beliebig viele zu übergeben?
(test << "hallo" << "welt" << "....)2. wenn ich anstelle von strings auch ints oder andere variablen übergebe, würde das mit templates klappen? kann man da auch verschiedene typen übergeben?
(test << string << int << string << int....)danke
-
Dazu brauchst du einen anderen Rückgabewert:
class Test { public: Test& operator<<(string temp) { cout << temp << endl; return *this; } };(auf diese Weise lassen sich mehrere <<-Aufrufe verketten)
-
Nachtrag zur zweiten Frage: Entweder du baust eine Template-Funktion
class Test { public: template<typename T> Test& operator<<(const T& data) { //verarbeite data return *this; } }Oder du schreibst eine überladene Funktion für jeden Datentyp, den du verarbeiten willst (const string&,int,char,...)
PS: Übrigens solltest du nicht "string temp" verwenden, sondern "const string& temp" - das ist üblicherweise schneller.