009
15.03.2007, 22:35 Uhr
ao
(Operator)
|
Zitat von Suba Esel: |
Wieso kann ich denn nicht einfach schreiben "std::string temp = char(i);"? Das versteh ich ja grade nicht, wie gesagt, wenn ich das in zwei Zeilen schreib funktioniert alles tadellos, so bekomm ich ne Fehlermeldung....
|
Der Einzeiler ist eine Deklaration mit Initialisierung, die diese Konstruktor-Überladung verlangt:
die es aber nicht gibt, was den Compiler zu einer Fehlermeldung veranlasst. Vgl. hier: www.cppreference.com/cppstring/string_constructors.html.
Der Zweizeiler ist eine Deklaration mit Default-Initialisierung (den Konstruktor hierfür gibts natürlich) und eine Zuweisung. Die erfordert diese Überladung von operator=:
C++: |
string & operator= (char);
|
und so eine Überladung ist vorhanden, und der Compiler ist zufrieden. Siehe hier: www.cppreference.com/cppstring/string_operators.html.
Gruß, ao |