模板指针初始化

时间:2017-01-19 12:14:55

标签: c++

我有一个模板类

template <class T>
class MyTemplate
{
public:
    struct node
    {
        int a;
    };
    MyClass();
    ~MyClass();
private:
    static node* theNode;
};

template <class T>
MyClass::node* MyClass<T>::theNode = 0;

但是theNode的初始化失败了 - 使用类模板需要模板参数列表 如果我将声明更改为

MyClass<T>node* MyClass<T>::theNode = 0;

我得到了

  

错误C2143:语法错误:缺少&#39;;&#39;之前&#39; *&#39;

有人可以告诉我正确的语法是什么吗?

1 个答案:

答案 0 :(得分:6)

只需更改您的定义:

template<class T>
typename MyClass<T>::node* MyClass<T>::theNode = 0;