String Klasse
-
Hallo,
kleine frage ich hänge gerade an einer Aufgabe, wie könnte ich so etwasint main() { String s1; String s2("Vogelsang"); String s3(s2); s1 += s2; s2 = s3; cout << s2 << endl; cout << s2[ 2 ] << endl; };Implementieren ohne den string container zu nutzen also muss man hier eine eigene string klasse schreiben, konstruktor / werte speichern ist bereits getan aber wie kann ich zb cout << s2 << endl; realisieren?
-
std::ostream& operator<<(std::ostream& out, String const& str) { // Implementation der Ausgabe hier // (Ausgabe: out << "Zeichenkette". Genau so wie bei cout.) }
-
Weirdo schrieb:
wie kann ich zb cout << s2 << endl; realisieren?
std::ostream& operator << (std::ostream& stream, const my_string& s) { for (auto c : s) stream << c; return stream; }
-
*Edit
Ich habe hier gerade Muell geschrieben weil ich deine Frage falsch gelesen habe
-
Ich hab die implementierung von cooki ausprobiert leider funktioniert sie nicht ganz kann jemand es mal nur für diesen fall komplett implementieren?
-
was funktioniert denn nicht? hast du deinem compiler gesagt, das er c++0x mittel nutzen muss(beim gcc z. B. -std=c++0x ) und du musst den header <intitializer_list> einbinden.
-
Und deine Stringklasse muss iteratoren bereitstellen. Falls die nur operator [] hat geht auch
std::ostream& operator << (std::ostream& stream, const my_string& s) { for (std::size_t i = 0; i != s.size(); ++i) stream << s[i]; return stream; }