模板类和单独的文件

时间:2012-02-03 15:41:49

标签: c++ templates

  

可能重复:
  Why can templates only be implemented in the header file?

为什么在此处演示的单独文件中编译时,此代码链接不会。这是编译行

g++ ./templateC.cpp ./main.cpp

这是错误

main.cpp:(.text+0x11): undefined reference to `templateC<int>::templateC()'
collect2: ld returned 1 exit status

我一直以为你可以将实现放在一个单独的文件中。如果我不能,那为什么?

所有文件都被淡化以防止混淆,但是编译时出现了错误,如下所示。

这是我的文件

的main.cpp

#include "templateC.h"

main(int argc, char *argv[])
{
    templateC<int> t;
}

templateC.h

template<class T>
class templateC
{
    public:
        templateC();
};

和templateC.cpp

#include "templateC.h"

template<class T>
templateC<T>::templateC()
{

}

0 个答案:

没有答案