error C2248
-
tag.
ich habe hier ein programm, was schon recht "groß" ist. auf einmal taucht nun folgende fehlermeldung auf:
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.
ich bin nun etwas überfordert, was mir das sagen soll, oder wo ich am besten nachschaue, wo mein fehler liegt, denn wenn ich auf den fehler im ausgabefenster klicke, dann öffnet sich die sstream headerdatei.
hat vielleicht jemand eine ahnung, wonach ich in meinem code ausschau halten sollte? was könnte eine mögliche fehlerquelle sein?
-
Hallo
Du könntest im Callstack bis zu einer Funktion gehen, die du selber geschrieben hast. Dann veröffentlichst du diesen Code hier und viel Leute werden versuchen dir zu helfen.
chrische
-
zeig doch mal die zeile, in der der fehler auftaucht (mit allem drumherum, soweit relevant).
-
okay,
habe den fehler lokalisieren können und daraus ein kleines übersichtliches programm gemacht, der den gleichen fehler enthält. damit kann man hoffentlich was anfangen.
DANKE.#include <conio.h> #include <iostream> #include <cmath> #include <fstream> #include <sstream> using namespace std; void TEST (std::stringstream); int main() { double a; std::stringstream filename; a = sqrt(4.0); filename << "datei" << a << ".txt"; std::ofstream myfile( filename.str().c_str(), std::ios_base::out | std::ios_base::app ); myfile.close(); TEST(filename); return 0; } void TEST (std::stringstream filename) { }
-
wie alle streams ist stringstream nicht kopierbar (der copyctor von ios_base ist private) und kann folglich nicht als funktionsargument benutzt werden.
-
Er könnte ja eine Refrenz nehmen.
-
HABS JETZT SO GEMACHT:
int main() { double a; std::stringstream filename; a = sqrt(4.0); filename << "datei" << a << ".txt"; std::ofstream myfile( filename.str().c_str(), std::ios_base::out | std::ios_base::app ); myfile.close(); TEST(filename); return 0; } void TEST (const char *buf) { }