Genereic struct c ++(未解析的外部符号)

时间:2016-05-17 09:53:57

标签: c++ generics struct

我有一个泛型类,我也有一个结构。像这样:

template <class T> class Octree
{
    public:

    struct node
    {
        typename  T value;
        node *child[8];
    };

    Octree();
    template <class T> Octree();
    ~Octree();
    void clear(T t);

    node* root;
};

.cpp文件:

template <class T>
Octree<T>::Octree()
{
    root = new node;
    root->value = 0;

    for (int i = 0; i < 8; i++)
        root->child[i] = 0;
}

template <class T>
Octree<T>::~Octree()
{
    clear(root);
}

和主要:

using namespace std;

int main() {
    Octree <int> fasz;
    Octree <char> fasz2;
    return 0;
}

我刚刚创建了一个树的对象,我收到了这个错误:

  

错误LNK2019未解析的外部符号“public:__thiscall Octree :: Octree(void)”(?? 0?$ Octree @ H @@ QAE @ XZ)在函数_main Zz c:\ Users .... Source中引用。 OBJ

我试图在头文件中编写模板声明,然后在实现文件中实现该类(例如.cpp),并在头的末尾包含此实现文件,但后来我遇到了错误:

  

错误C2995'Octree :: Octree(void)':函数模板已经定义

我看过这个链接问题,但这不是我需要的。

你知道问题是什么吗?

0 个答案:

没有答案