Witam,
Moim zadaniem jest stworzenie funkcji, która będzie usuwała ostatni element z listy i jednocześnie zwracała wskaźnik do jego kopii tak, by z drobnymi modyfikacjami ten element można było później wykorzystać. Na razie mam coś takiego:
Node* List::dequeue() {
Node *tmp = this->head;
Node* prev = NULL;
while (tmp->getNext()) {
prev = tmp;
tmp = tmp->getNext();
}
Node* tmp2 = new Node(*prev);
//delete prev;
delete tmp;
return tmp2;
}
Przyznam szczerze, że dopiero stawiam pierwsze kroki w C++, wcześniej pisałem w C i podejście strukturowe było dla mnie jasne. Tutaj jednak jest ciut trudniej. Problem polega na tym, że program się wywala - jak sądzę dlatego, że usuwam tmp, a prev jest jakoś z nim powiązane? Jak to dokładnie w ogóle wygląda? Czy jeżeli tmp jest obiektem klasy List, to co powoduje instrukcja prev = tmp?