Witam!
Spróbuje krótko wyjaśnić swój problem:
Otóż stworzyłem klasę szlifierka:
class szlifierka
{
private:
string producent;
string model;
string kolor;
silnik c_silnik;
tarcza *c_tarcza;
static int licz_szlif;
public:
szlifierka(string, string, string, int, bool, tarcza* =0);
~szlifierka();
void montuj();
void zdejmij();
void drukuj();
void zapis(ostream &sv);
void odczyt(istream &ld);
};
Dokładnie chodzi mi o metody zapis(ostream &sv), odczyt(istream &ld). Metody te mają zapisywać do pliku dane klasy (te private). Podczas testowania programu zauwazyłem ze jezeli nie zapisze do pliku (nie wywołam metody zapis), to moge wczytać dane i wyświetlic je na ekranie. Jak to mozliwe? odczytać cos czego sie nie zapisało :-[ ?! Oto metoda zapisu:
void szlifierka::zapis(ostream &sv)
{
if(!c_tarcza)
{
sv<< producent<<" "
<< model<< " "
<< kolor<<"\n";
}else{
sv<< producent<<" "
<< model<< " "
<< kolor<<" "
<<c_tarcza->nazwa_tarczy<<"\n";
}
cout<<"!Skladniki klasy szlifierka zapisane do pliku!\n\n";
}
A to odczytu:
void szlifierka::odczyt(istream &ld)
{
if(!c_tarcza)
{
ld>>kolor>>model>>producent;
}else{
ld>>c_tarcza->nazwa_tarczy>>kolor>>model>>producent;
}
cout<<"!Skladniki klasy szlifierka wczytane z pliku!\n";
cout<<"Producent: "<< producent<<endl;
cout<<"Model: "<< model<<endl;
cout<<"Kolor: "<< kolor<<endl;
if(!c_tarcza){cout<<endl;};
if(c_tarcza){
cout<<"Rodzaj Tarczy: "<<c_tarcza->nazwa_tarczy<<endl<<endl;
};
}
Prosze o pomoc, googlowałem to wiele razy ale nic ciekawego nie znalazłem.