Ładny brzuch
Hej w programiku mam problem z destruktorem lub z wyswietlaniem, bo
w sumie destruktor dziala, lecz po jego zadzialaniu funkcja wypisuje jakies litery?
Oto kod:
class Struktura { public: int dane; Struktura *nast; Struktura *pop; Struktura(int a): dane(a), nast(NULL), pop(NULL) {} //konstruktor inicjalizujacy void wyswietl() { cout << dane << " "; } }; class ListaDwukierunkowa { private: Struktura *pierwszy; Struktura *ostatni; public: ListaDwukierunkowa() : pierwszy(NULL), ostatni(NULL) {} //konstruktor inicjalizujacy domniemany bool jestPusta() { return pierwszy == NULL; } void wstawpierwsze(int b) //wstawia na poczatek listy { Struktura *nowy = new Struktura(b); if(jestPusta()) ostatni = nowy; else pierwszy->pop = nowy; nowy->nast = pierwszy; pierwszy = nowy; } void wyswietldoprzodu() { Struktura *actual = pierwszy; while(actual != NULL) { actual->wyswietl(); actual = actual->nast; } cout << endl; } ~ListaDwukierunkowa() //destruktor { Struktura *actual = pierwszy; while(actual != NULL) { Struktura *hmmm = actual; actual = actual->nast; delete hmmm; } cout << "Pracuje destruktor"; } };//koniec klasy ListaDwukierunkowa int main(int argc, char* argv[]) { ListaDwukierunkowa nowa; nowa.wstawpierwsze(5); nowa.wstawpierwsze(10); nowa.wstawpierwsze(15); nowa.wyswietldoprzodu(); nowa.~ListaDwukierunkowa(); nowa.wyswietldoprzodu(); return 0; }
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
w sumie destruktor dziala, lecz po jego zadzialaniu funkcja wypisuje jakies litery?
Oto kod:
class Struktura { public: int dane; Struktura *nast; Struktura *pop; Struktura(int a): dane(a), nast(NULL), pop(NULL) {} //konstruktor inicjalizujacy void wyswietl() { cout << dane << " "; } }; class ListaDwukierunkowa { private: Struktura *pierwszy; Struktura *ostatni; public: ListaDwukierunkowa() : pierwszy(NULL), ostatni(NULL) {} //konstruktor inicjalizujacy domniemany bool jestPusta() { return pierwszy == NULL; } void wstawpierwsze(int b) //wstawia na poczatek listy { Struktura *nowy = new Struktura(b); if(jestPusta()) ostatni = nowy; else pierwszy->pop = nowy; nowy->nast = pierwszy; pierwszy = nowy; } void wyswietldoprzodu() { Struktura *actual = pierwszy; while(actual != NULL) { actual->wyswietl(); actual = actual->nast; } cout << endl; } ~ListaDwukierunkowa() //destruktor { Struktura *actual = pierwszy; while(actual != NULL) { Struktura *hmmm = actual; actual = actual->nast; delete hmmm; } cout << "Pracuje destruktor"; } };//koniec klasy ListaDwukierunkowa int main(int argc, char* argv[]) { ListaDwukierunkowa nowa; nowa.wstawpierwsze(5); nowa.wstawpierwsze(10); nowa.wstawpierwsze(15); nowa.wyswietldoprzodu(); nowa.~ListaDwukierunkowa(); nowa.wyswietldoprzodu(); return 0; }