Stringstream initialisieren
-
aber schöner wärs wenn du immer nen neuen stringstream in MakeNum erstellst
-
Was für eine Str-Memberfunktion?
Ich dachte mir es ist übersichtlicher und sicherer die Variablen als private zu deklarieren?Neo2k3
-
class File { private: std::stringstream StrStr; long double Zahl; //... public: //... const long double MakeNum(const std::string Str) { StrStr.str(""); StrStr << Str; StrStr >> Zahl; return Zahl; } //...
oder
class File { private: long double Zahl; //... public: //... const long double MakeNum(const std::string Str) { std::stringstream StrStr; StrStr << Str; StrStr >> Zahl; return Zahl; } //...
-
hmm, da geht leider nur die zweite Methode.
Ich versteh nicht, warum man den Stream nicht leeren kann...Hoffe du hast noch ne Idee.
-
hmmmmm, das muss funktionieren
-
Wenn du in der 1. Version MakeNum() das 2. mal aufrufst ist das fail-bit in stringstream gesetzt. Wegen eof.
so gehts:class File { private: std::stringstream StrStr; long double Zahl; //... public: //... const long double MakeNum(const std::string Str) { StrStr.clear(); StrStr.str(""); StrStr << Str; StrStr >> Zahl; return Zahl; } };
Kurt
-
Ahh jo, danke
-
Die beiden Variablen gehören als lokale Variablen in die MakeNum()-Funktion die wiederrum static sein soll imho.
MfG SideWinder
-
die wiederrum static sein soll imho
WTF?
-
the daily wtf schrieb:
die wiederrum static sein soll imho
WTF?
er meint:
static double MakeNum(const std::string& Str) {
-
OK bei der Gelegenheit:
Warum static und warum als Referenz?
-
Warum static?
Warum nicht?
Und warum als Referenz?
Warum nicht?
-
Die Übergabe by-const-reference statt by-value hilft bei Objekten Zeit für Kopien zu sparen. by-const-reference benötigt intern bloß die Kopie des Zeigers (4 bzw. 8 Byte) der auf das Objekt zeigt, by-value benötigt eine Kopie des gesamten Strings (1 * Länge des Strings Bytes + eventl. Overhead).
Static ist eine Angewohnheit die ich mir erst in Java angeeignet habe: Alles was nicht unbedingt Zugriff auf Member-Variablen benötigt fällt unter die Kategorie "Util" und kann genausogut static sein. In wie fern das auch unter C++ toll ist, kann ich dir nicht sagen, ich sehe es derzeit als guten Stil an.
MfG SideWinder