ciao a tutti,
ci tengo a precisare che il progetto è molto più grande, ma per farvi capire(essendo impossibilitato a postare tt il code) ho riassunto il problema in un esempio:
main.cpp
classe1.hcodice:#include <iostream> #include "classe1.h" #include "classe2.h" using namespace std; int main() { x prova1; y prova2; prova1.creazionefile(); prova2.dati(); return 0; }
classe2.hcodice:#include <iostream> #include <fstream> using namespace std; class x { public: string aprifile; void creazionefile() { cin >> aprifile; aprifile=aprifile+".txt"; fstream nuovofile; nuovofile.open(aprifile.c_str(),ios::out); nuovofile << "Prima riga" <<endl; nuovofile.close(); } };
se compilate potrete notare che di problemi non ne da, tuttavia non fa il suo dovere in quanto si solleva l'eccezione di non riuscita dell'apertura del file(classe2).codice:#include <iostream> #include <fstream> using namespace std; class y : public x { public: void dati() { fstream dato(aprifile.c_str(),ios::out|ios::app); if(!dato) { cout << "Apertura non riuscita"; } dato << "Seconda riga"; dato.close(); } };
A grandi linee è questo il problema..non mi spiego come sia possibile in quanto la classe è derivata e il dato nella classe base è di tipo public.
grazie

Rispondi quotando