我是将程序分成不同文件的新手。 我正在尝试将(更大)更大的程序分开,我认为'我在这里解决了这些问题:
class_A.h
#ifndef FILE_A
#define FILE_A
template <class T>
class A
{
public:
T data;
A ();
};
#endif
class_A.cpp
#include "class_A.h"
template <class T>
A<T>::A () {}
的main.cpp
#include <iostream>
#include "class_A.h"
using namespace std;
int main ()
{
A<int> foo;
return 0;
}
我尝试使用:
进行编译g++ -std=c++11 class_A.cpp main.cpp
并收到错误:
/tmp/ccBJWT6K.o:在函数
main': main.cpp:(.text+0x1f): undefined reference to
A :: A()&#39; collect2:错误:ld返回1退出状态
当我取走模板时,代码工作正常。所以我的问题是我在这里做错了什么?为什么它被认为是未定义的?