für eine Zuordnung ich eine LinkedList Klasse erstellen musste, hier ist die Kopfinfo:kein Spiel für Operator =, Konstruktor einen Zeiger
struct element{
Event *data;
element *next;
};
class LinkedList {
public:
element *first, *last;
LinkedList();
Der Konstruktor ist:
LinkedList::LinkedList() {
first = NULL;
last = NULL;
}
Und ich Ich versuche so eine Warteschlange damit zu machen:
class EventQueue {
public:
LinkedList events;
Und schließlich tritt der Fehler hier auf, wo ich versuche, das Konstrukt zu erstellen Ctor für Eventqueue by doing:
EventQueue::EventQueue(){
events = new LinkedList();
}
Und es wirft einen Fehler, keine Übereinstimmung für Operator =, Operandentypen sind LinkedList und LinkedList *.
Warum erstellt der Konstruktor für LinkedList einen Zeiger? Ich kann nicht finden, was das verursachen würde oder wie ich es beheben könnte.
EDIT: Danke für die Antworten jeder ich fühle mich wie ein riesiger Idiot, ich bekam eine Reihe von undefined Referenzfehler und dachte, ich musste den Konstruktor ändern, also habe ich die ganze neue Objekt-Sache ausprobiert. In Wirklichkeit war der Fehler in meinem Makefile, wo ich die LinkedList.o-Datei nicht ordnungsgemäß verknüpfte. Danke an alle, die meine Frage beantwortet haben!
Der Konstruktor keinen Zeiger erstellen. 'neu' tut es. Dies sollte in jedem einführenden C++ Buch erläutert werden – juanchopanza