Redeklaration
-
Wenn ich Versuche zwei mal hintereinander stringstream ss(buffer); aufzurufen, bekomme ich die Fehler "Fehler: Redeklaration von »std::stringstream ss«" und "Fehler: »std::stringstream ss« wurde bereits hier deklariert". Wieso geht das nicht, es handelt sich ja um den gleichen Typ? Wie kann ich einer Variable ein neues Objekt zuweisen.
-
Ich glaube, dir fehlen sehr essentielle Grundlagen.
Hol, dir ein gutes C++-Buch, Thread gibts in der FAQ.
P**.S.:**
Wenn du einem Stringstream einen neuen Inhalt zuweisen willst, nimmst du einfachss.str(buffer);
-
1234567890987654321 schrieb:
Wie kann ich einer Variable ein neues Objekt zuweisen.
Kommst du aus der Java-Ecke?
-
Sone_ schrieb:
1234567890987654321 schrieb:
Wie kann ich einer Variable ein neues Objekt zuweisen.
Kommst du aus der Java-Ecke?
Was sone_ damit sagen möchte: In C++ sind die Variablen die Objekte. Daher macht die Idee, einer Variablen ein neues Objekt zuzuweisen keinen Sinn (außer vielleicht bei Pointern).
Du kannst aber mit den Gültigkeitsbereichen (d.h. den geschweiften Klammern) die Lebenszeit eines Objektes steuern. Ein Objekt lebt nur so lange wie der Bereich in dem es definiert wird:
int main { { int i; } // Ab hier gibt es i nicht mehr double i; // Dies ist ein ganz anderes i int j; double j; // Geht nicht, sonst gäbe es zwei j }Das gleiche kannst du mit deinem Stringstream machen, aber vermutlich willst du ihn einfach nur mit neuen Daten füttern. Stingstreams haben auch Einfügeoperationen, einfach mal die Referenz ansehen. Aber nicht vergessen, vorher einen eventuellen Fehlerstatus zu clear()en.