1

我正在尝试创建一个从模板类返回类定义结构的函数。g++ 给出错误信息error: expected constructor, destructor, or type conversion before ‘*’ token。以下是相关代码:

来自 BSTDict.cpp:

Node*& BSTDict<T, Compare>::add_helper(Node*& r, T key) { ... }

来自 BSTDict.hpp:

struct Node {
    T key;
    T data;
    Node* left;
    Node* right;
};

...

Node*& add_helper(Node*& r, T key);

我做了很多测试,我认为问题出在 Node 上(不管引用和指针如何)。我也试过BSTDict<T, Compare>::Node*& BSTDict<T, Compare>::add_helper(Node*& r, T key) { ... }了。任何帮助,将不胜感激。谢谢。

编辑:这里是BSTDict.hppBSTDict.cpp。它们是更大计划的一部分。

4

1 回答 1

2
template <typename T, typename Compare>
    typename BSTDict<T, Compare>::Node*& 
    BSTDict<T, Compare>::add_helper(Node*& r, T key) 
    { 
       // ... 
    }

我不确定/*typename*/那里是否需要。我必须看到更多你的代码(我必须弥补template<>限定词 msyefl 已经:))

于 2013-03-11T23:55:48.923 回答