fstream schreiben klappt nicht ganz
-
Du versuchst, deinen
ofstream
zu kopieren. Das geht nicht.
-
AnfängerPlusPlus schrieb:
fehleranzeige:
error C2248: "std::basic_ios<_Elem,_Traits>::basic_ios": Kein Zugriff auf private Member, dessen Deklaration in der std::basic_ios<_Elem,_Traits>-Klasse erfolgte.Das ist nicht die vollständige Fehlermeldung.
Wie schon gesagt, der Fehler ist, dass du versuchst den Stream zu kopieren.
Um Kopien zu verhindern, wurde vor C++11 die entsprechende Memberfunktion privat deklariert.
Der Compiler sagt dir nun, dass du eine private Funktion nicht aufrufen darfst.
-
An Leute mit dem selben Problem:
Die Antwort sind Zeiger.
-
AnfängerPlusPlus schrieb:
An Leute mit dem selben Problem:
Die Antwort sind Zeiger.Eher micht
-
was dann
-
AnfängerPlusPlus schrieb:
An Leute mit dem selben Problem:
Die Antwort sind Zeiger.Nimm lieber Referenzen.
class xyz { public: ostream &toStream( ostream &str ) const { return str << member1 << member2; // etc } }; inline ostream &operator << ( ostream &str, const xyz &obj ) { return obj.toStream( str ); } ... xyz obx = <was auch immer> ofstream datei( "datei.txt" ); datei << obj;
Nur ein Codefragement, Tippfehler bitte selber korigieren. Man könnte den operator auch als friend deklarieren, oder getterfunktionen aufrufen und damit toStream ersetzen. friend benutze ich aber nur, wenn's unbedingt sein muß.
mfg Martin
-
Warum lieber referenzen?
-
AnfängerPlusPlus schrieb:
Warum lieber referenzen?
Hausaufgabe: Schreibe das Beispiel von mir um, indem Du statt Referenzen Zeiger benutzt.
-
Ich meine bezogen auf mein Beispiel
-
AnfängerPlusPlus schrieb:
Ich meine bezogen auf mein Beispiel
Das gilt auch bezogen für dein Beispiel.
-
Und wo ist hier das Problem?
#include <iostream> using namespace std; int addition () { int hallo = 1; int tschuss = 2; return hallo << tschuss; } int main () { int zahl1 = 0, int zahl2 = 0; zahl1, zahl2 = addition (); cout << zahl1 << endl << zahl2 << endl; system ("PAUSE"); }
-
angenommen das , hinter zahl 1 wäre ein semikolon. statt der ausgabe 1,2 kommt 0,4
-
AnfängerPlusPlus schrieb:
angenommen das , hinter zahl 1 wäre ein semikolon. statt der ausgabe 1,2 kommt 0,4
Warum statt?
-
AnfängerPlusPlus schrieb:
angenommen das , hinter zahl 1 wäre ein semikolon. statt der ausgabe 1,2 kommt 0,4
lies bitte ein Grundlagenbuch und stochere hier nicht rum.
mfg Martin