我有一个模板课

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:语法错误:缺少';'在“ *”之前


请有人告诉我正确的语法是什么?

最佳答案

只需更改您的定义:

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

关于c++ - 模板指针初始化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41741579/

10-13 08:19
查看更多