Ich habe versucht, generische verkettete Liste von Objekten in C++ zu implementieren. Aber wenn ich das gleiche Objekt zweimal hole, gibt es mir andere Ergebnisse. Ich denke, es ist auf den Missbrauch von Zeigern zurückzuführen. Bitte hilf mir beim Debuggen.generische verkettete C++ - Implementierung in c
Hier ist die Knoten-Implementierung. Ich habe Zeiger für Vorlagen verwendet, da die verknüpfte Liste benutzerdefinierte Objekte enthalten soll.
Hier ist die Implementierung für generische verkettete Liste.
template <class T> class LinkedList{
public:
Node<T>* head = NULL;
LinkedList(){}
LinkedList(T* value){
Node<T> node(value);
head = &node;
}
Node<T>* getHead(){
return head;
}
void add(T* value){
Node<T> node(value,head);
head = &node;
}
};
Hauptfunktion: Als ich Leiter der verknüpften Liste nennen, es gibt mir 2 verschiedene Antworten. In diesem Code ist Complex eine einfache Klasse für komplexe Objekte.
int main(){
Complex c1(1,2); Complex c2(3,4); Complex c3(5,6);
LinkedList<Complex> list(&c1);
list.add(&c2);
cout<<list.head->getElement()->i<<" "<<list.getHead()->getElement()->j<<endl;
cout<<list.head->getElement()->i<<" "<<list.getHead()->getElement()->j<<endl;
return 0;
}
Vielen Dank im Voraus!
'C' hat keine Klassen, Sie können also keine Klasse in' C' mit 'Klassen' implementieren. Versuchen Sie, eine Struktur zu verwenden. –
Verwenden Sie Ihren Debugger. SO ist kein Debugging-Service. Nachdem Sie das Problem verfolgt haben, können Sie eine Frage stellen, wenn Sie nicht verstehen, warum der Code so ausgeführt wird, wie er ist, aber an diesem Punkt haben Sie alle Details darüber, was passiert, um Ihre Frage zu stellen. –
Warum nicht einfach 'std :: list' verwenden und fertig sein? –