可能重複:
Where and why do I have to put the 「template」 and 「typename」 keywords?如何初始化靜態成員數組類模板
#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|error: expected constructor, destructor, or type conversion before '*' token
確實在'Test :: obj *'幫助之前添加'typename'? –
2012-04-08 04:12:57
如果你在類之外聲明該聯合,它是否工作? – rutgersmike 2012-04-08 04:13:55
兩個都沒問題,但我只知道後者。 – prehistoricpenguin 2012-04-08 07:15:39