返回带有模板化类的类成员结构

Returning a class member struct with a templated class

本文关键字:成员 结构 返回      更新时间:2023-10-16

我试图创建一个函数,从模板化类返回类定义的结构。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.hpp和BSTDict.cpp。
template <typename T, typename Compare>
    typename BSTDict<T, Compare>::Node*& 
    BSTDict<T, Compare>::add_helper(Node*& r, T key) 
    { 
       // ... 
    }

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