“file.h”
template <class ClassType>
class NewClass
{
protected:
public:
NewClass() {}
~NewClass() {}
static long INITIAL_SIZE;
};
“file.cpp”
template<class ClassType>
long NewClass<ClassType>::INITIAL_SIZE{ 50 };
“用法文件”
在主要功能
中std::cout << NewClass<char>::INITIAL_SIZE << std::endl;
有人可以告诉我为什么这会给我一个“lnk2001未解析的外部符号”错误?
所以每当我搬家时:
template<class ClassType>
long NewClass<ClassType>::INITIAL_SIZE{ 50 };
到头文件会产生不同的错误......但是一旦我将{50}更改为= 50:
template<class ClassType>
long NewClass<ClassType>::INITIAL_SIZE = 50;
它奏效了。我不明白为什么,但问题是我设置变量的方式。