2

可能重复:
我必须在哪里以及为什么要放置“模板”和“类型名称”关键字?

#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|错误:“*”标记之前的预期构造函数、析构函数或类型转换
4

1 回答 1

3

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

于 2012-04-08T04:14:41.997 回答