Я создаю общее двоичное дерево, которое включает в себя структуру TreeNode.Я реализую функцию rootPtr (), которая возвращает указатель на корень дерева. binarytree.h это просто следующее:
template <class T>
class BinaryTree {
public:
typedef struct TreeNode {
T item;
TreeNode *leftChildPtr; // pointer to left child
TreeNode *rightChildPtr;
public:
TreeNode(const T& nodeItem,
TreeNode *left,
TreeNode * right)
: item(nodeItem), leftChildPtr(left), rightChildPtr(right) {
}
TreeNode(const T & nodeItem)
: item(nodeItem) {
leftChildPtr = NULL;
rightChildPtr = NULL;
}
} TN; //end treenode
//Function prototype
TN* rootPtr() const;
private:
TN *root;
} //end binarytree
Это фрагмент из binarytree.cpp , который приводит к ошибке.
template <class T>
BinaryTree<T>::TN* BinaryTree<T>::rootPtr() {
return root;
}
Компилятор жалуется на ошибку : ожидаемый конструктор, деструктор или преобразование типа перед маркером '*' Я видел эту ошибку раньше и обработал ее, используя BinaryTree::
, но на этот раз, поскольку она является общей, я не знаю, что мне делать.Любая помощь будет оценена.