我有一个模板类
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;
有人可以告诉我正确的语法是什么吗?
答案 0 :(得分:6)
只需更改您的定义:
template<class T>
typename MyClass<T>::node* MyClass<T>::theNode = 0;