Bekomme Fehlermeldung(template): &#8216;BinTree<T>::leftNode&#8217; has incomplete type
-
Guten Abend allerseits,
ich will mir eine Templateklasse aufbauen, welche einen rekursiv aufgebauten Binärbaum darstellt(als Übungszweck) und bekomme leider folgende Fehlermeldungen:../src/BinTree.h: In instantiation of ‘BinTree<int>’:
../src/main.cpp:13: instantiated from here
../src/BinTree.h:15: error: ‘BinTree<T>::leftNode’ has incomplete type
../src/BinTree.h:11: error: declaration of ‘class BinTree<int>’
../src/BinTree.h:16: error: ‘BinTree<T>::rightNode’ has incomplete type
../src/BinTree.h:11: error: declaration of ‘class BinTree<int>’bei dieser Definition:
template<class T> class BinTree { private: T value; BinTree<T> leftNode; //<-FEHLER BinTree<T> rightNode; //<-FEHLER public: /* Konstruktor */ BinTree(); BinTree(T v); BinTree(BinTree<T> &leftNode, BinTree<T> &rightNode, T v); /* Destruktor */ virtual ~BinTree(); /* Getter-Methoden */ BinTree<T> getLeftNode()const; BinTree<T> getRightNode()const; T getValue()const; /* Setter-Methoden */ void setLeftNode(BinTree<T> &left); void setRightNode(BinTree<T> &right); void setValue(T v); };in der MainFunktion will ich das ganze so aufrufen:
//Wurzel BinTree<int> a(10); //Äste von 'a' BinTree<int> b(20); BinTree<int> c(30); //Äste von 'b' BinTree<int> d(40); BinTree<int> e(50); a.setLeftNode(b); a.setRightNode(c); b.setLeftNode(d); b.setRightNode(e);Ich suche jetzt schon seit fast einer Stunde hab aber keine Ahnung wie ich das löse
-
Naja, die Fehlermeldung sagts ja eigentlich
Der Typ von leftNode ist bei der Definition noch nicht vollständig. Was soll der Compiler denn da anlegen? ein BinTree-Objekt? Das beinhaltet wiederum einen leftNode-Member etc... ne Endlosschleife also :p Mach nen Zeiger draus.