implementacja kolejki, problem z konstruktorem przenoszącym
Ostatnio zmodyfikowano 2015-01-06 23:57
_Radek Temat założony przez niniejszego użytkownika |
implementacja kolejki, problem z konstruktorem przenoszącym » 2015-01-06 23:43:48 Witam, mam zaimplementować klasą Lista, która wygląda praktycznie tak samo jak queue. Zaciąłem się przy konstruktorze kopiującym i nie rozumiem co się dzieje. Tzn moja klasa wygląda tak template < typename T > class Lista { struct element { int el_; element * nastepny; element() : el_( 0 ) , nastepny( nullptr ) { } element( T & i, element * nas ) : el_( i ) , nastepny( nas ) { } }; public: element * zerowy; element * ostatni; int rozmiar; Lista(); Lista( const Lista & lista_ ); auto size() const->int; auto empty() const->bool; auto push_back( T i )->void; auto push_front( T i )->void; auto pop_front( void )->void; ~Lista(); };
No i zabrałem się za konstruktor kopiujący, próbowałem i nie wychodziło, tzn jak go wywoływałem to program zaczął się zapętlać, to patrzyłem gdzie może być problem, nie mogąc go znaleźć coraz to nowe linijki zakomentowywałem i doszedłem do tego że tam chyba każda pętla się zapętla... tzn w jednym miejscu kodu sobie tworzę nową listę pustą, push_beckuje parę elementów, wywołuję konstruktor kopiujący który wpisałem (głupi żeby sprawdzić co się dzieje) template < typename T > Lista < T >::Lista( const Lista & lista_ ) { template < typename T > Lista < T >::Lista( const Lista & lista_ ) { zerowy = nullptr; ostatni = nullptr; rozmiar = lista_.rozmiar; int i = 0; for( i; i < lista_.rozmiar; i++ ) { std::cout << i; } }
Lista < int > k; k.push_back( 10 ); k.push_back( 1 ); k.push_front( 4 ); k.push_back( 2 );
Lista < int > l( k );
i mi wypisuje 0123 i... komunikat że program przestał działać... o co może chodzić? |
|
Monika90 |
» 2015-01-06 23:57:12 i mi wypisuje 0123 i... komunikat że program przestał działać... o co może chodzić? |
Wypisuje 0123 ponieważ k ma cztery elementy. Następnie wywoływane są destruktory, które robią nie wiem co, bo nie pokazałeś istotnego kodu (co jest typowe dla większości pytających). |
|
« 1 » |