假设我有一个名为A
的类template<class T>
class A
{
protected:
static T* obj;
A() {}
~A() {}
public:
// methods...
};
// Somewhere in my source file...
template <class T> A <T*> ::obj = NULL;
由于各种原因,我需要声明一个静态成员obj,并且gcc不喜欢在类的定义期间初始化它们(显然你可以用visual studio做到)
无论如何,我如何正确宣布obj?
答案 0 :(得分:2)
你不能部分专门化那样的对象。相反,只需这样做:
template <class T> T * A<T>::obj = NULL;
确保将此文件与类模板定义一起放在标题文件中!