lnk2001未解析的外部符号与公共静态变量

时间:2015-09-05 19:34:40

标签: c++ templates static

“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;

它奏效了。我不明白为什么,但问题是我设置变量的方式。

0 个答案:

没有答案