这个问题已经在这里有了答案:




已关闭8年。





#include <iostream>
using namespace std;

template <class T>
class Test
{
    union obj
    {
        union obj* next;
        int num;
    };

    static const int SZ=3;
    static obj* volatile list[SZ];
};

template <class T>
Test<T>::obj* volatile
Test<T>::list[SZ]=
{
    0, 0, 0
};

int main()
{
    return 0;
}

使用g++,我得到的错误是:

18 |错误:“*”标记之前的预期构造函数,析构函数或类型转换

最佳答案

在成员的定义中的Test<T>::obj*之前添加关键字typename。

关于c++ - 如何使用模板初始化类中的静态成员数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10060287/

10-11 19:30
查看更多