模板类静态变量初始化

模板类静态变量初始化
看如下代码:
template  < int  I >   class  Test
{
    union Obj
    
{
        union Obj 
*next;
        
char data[1];
    }
;

    
static Obj* freeList[16];
    
static T* ms_singleton;
}
;

第二个静态变量初始化很容易:
template < Class T >
T
*  Test < T > ::ms_singleton = 0 ;

第一个呢?
要这样:
template < class  T >
typename Test
< T > ::Obj *  Test < T > ::freeList[ 16 ] = {0} ;

用typename关键字来告诉编译器Obj是个类型。

你可能感兴趣的:(模板类静态变量初始化)