Ich habe Schwierigkeiten, ein Klassenobjekt aus einer Vorlagklasse zu erstellen, in der der Konstruktor auch eine Vorlage sein muss und ein Parameter akzeptieren muss, wenn das Objekt erstellt wird. Wenn ich jedoch versuche, das Objekt zu erstellen, erhalte ich eine Fehlermeldung, in der ich auf etwas verwiesen werde, das nicht existiert.
Hier ist mein Code:
using namespace std;
#include
template
class BinaryTree
{
public:
BinaryTree(Node_Type);
BinaryTree(Node_Type, Node_Type);
BinaryTree(Node_Type, Node_Type, Node_Type);
bool isEmpty();
Node_Type info();
Node_Type inOrder();
Node_Type preOrder();
Node_Type postOrder();
private:
struct Tree_Node
{
Node_Type Node_Info;
BinaryTree *left;
BinaryTree *right;
};
Tree_Node *root;
};
#endif
und meine .cpp:
template
BinaryTree::BinaryTree(Node_Type rootNode) {
root = rootNode;
root->left = NULL;
root->right = NULL;
}
Es gibt mehr in der .cpp, aber es sind nur andere Funktionsmember, die irrelevant sind. Mein oben gezeigter Konstruktor ist, was ich nicht zum Laufen bringen kann.
In meinem Hauptprogramm versuche ich, mein Objekt mit dem Aufruf zu deklarieren:
BinaryTree node('a');
aber wenn ich das versuche, erhalte ich eine Fehlermeldung, die besagt:
undefined reference to `BinaryTree::BinaryTree(char)'
Ich versuche jetzt seit zwei Tagen, das herauszufinden. Ich habe jedes Thema gegoogelt, an das ich denken kann, und unzählige Beispiele auf Stack Overflow und anderen Quellen gelesen, ohne Hilfe. Kann mir bitte jemand erklären, was mein Problem ist? Ich weiß, wie ich mein Projekt machen soll, und ich wäre jetzt fertig, wenn die Syntax in C ++ nicht so lächerlich wäre. Danke im Voraus!