我有一个模板类
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;
Run Code Online (Sandbox Code Playgroud)
但初始化theNode失败 - 使用类模板需要模板参数列表如果我将声明更改为
MyClass<T>node* MyClass<T>::theNode = 0;
Run Code Online (Sandbox Code Playgroud)
我明白了
错误C2143:语法错误:缺少';' 在'*'之前
请有人能告诉我正确的语法是什么吗?
只需更改您的定义:
template<class T>
typename MyClass<T>::node* MyClass<T>::theNode = 0;
Run Code Online (Sandbox Code Playgroud)