我正在使用模板类型为键,数据和比较函数制作BST类。我有一个函数创建新的节点并返回一个指向其他函数的指针。问题是,使用模板时返回类型无效。我创建了以前没有模板的树,并返回一个类型节点*不是问题。我不确定幕后发生的事情是否使模板版本无效。 我得到的错误包括:模板并返回一个节点*
面目全非模板声明/定义
语法错误:缺少“;”之前'*'
缺少类型说明符 - int假定。注意:C++不支持默认int
我的类模板,节点结构和节点创建功能如下:
template <typename KEY, typename VALUE, bool (*COMPARE)(KEY, KEY)>
class BSTROOT {
private:
struct Node {
KEY key;
VALUE value;
Node *left = nullptr;
Node *right = nullptr;
};
Node* createNode(const KEY& key, const VALUE& value);
template <typename KEY, typename VALUE, bool(*COMPARE)(KEY, KEY)> Node* BSTROOT<KEY, VALUE, COMPARE>::createNode(const KEY& key, const VALUE& value) {
Node *temp = new Node;
temp->key = key;
temp->value = value;
return temp;
}
任何提示或信息,将不胜感激。
你关闭与'}类定义;'? – Cornstalks
请提供一个[最小,完整和可验证的示例](https://stackoverflow.com/help/mcve) – klutt
我所有的{}都很好,我没有直接复制所有代码的粘贴我认为相关的位。我想我不应该把大量的代码转储到页面上。我第一次在这里问一个问题,所以原谅我,如果我不这样做通常预期 – odoylerules