Hallo,
ich versuche aktuell einen eigenen Stack in C++ zu implementieren. Dazu habe ich eine Klasse "Node" (Knoten), die eine Variable hat, die ebenfalls vom Typ Node ist und den Nachfolger von des Knotens darstellt, sodass ich einen Anfangsknoten habe, von dem aus alle andere Knoten ausgehen. Mein Problem ist jetzt, dass ich in meiner Klasse Node keine Variable des Typ Node definieren kann ohne die Fehlermeldung "ein unvollständiger Datentyp ist nicht zulässig" zu erhalten. Ich habe versucht das Problem zu lösen, indem ich statt eines Nachfolgerknoten einen Pointer auf den Nachfolgerknoten erstellt habe. Die Fehlermeldung verschwindet, allerdings kann ich den Pointer nicht mit new initialisieren. Wie kann ich also eine Variable des Typ Node in meiner Klasse Node selbst definieren?
ich versuche aktuell einen eigenen Stack in C++ zu implementieren. Dazu habe ich eine Klasse "Node" (Knoten), die eine Variable hat, die ebenfalls vom Typ Node ist und den Nachfolger von des Knotens darstellt, sodass ich einen Anfangsknoten habe, von dem aus alle andere Knoten ausgehen. Mein Problem ist jetzt, dass ich in meiner Klasse Node keine Variable des Typ Node definieren kann ohne die Fehlermeldung "ein unvollständiger Datentyp ist nicht zulässig" zu erhalten. Ich habe versucht das Problem zu lösen, indem ich statt eines Nachfolgerknoten einen Pointer auf den Nachfolgerknoten erstellt habe. Die Fehlermeldung verschwindet, allerdings kann ich den Pointer nicht mit new initialisieren. Wie kann ich also eine Variable des Typ Node in meiner Klasse Node selbst definieren?
C-Quellcode
- #include "Node.h"
- Node::Node()
- : has_next(false)
- {
- next = new Node(); //wenn ich "next" als Pointer definiert habe gibts hier einen Stack overflow
- }
- Node::~Node()
- {
- }
- void Node::set_next(Node node)
- {
- *next = node;
- has_next = true;
- }
- Node Node::get_next()
- {
- return *next;
- }
- void Node::set_value(int val)
- {
- value = val;
- }
- int Node::get_value()
- {
- return value;
- }