<分区>
只是说清楚:这与我们必须在头文件中定义模板类的函数的问题不同。
更新 :如果您需要真正的源代码,可以在这里下载:https://Near@bitbucket.org/Near/compile_error.git
我实现了一个双列表类。
// list.h //
class list {
//...
void insert(...);
};
// list.cpp //
#include "list.h"
void list::insert(...) {
...
}
我还实现了一个包含 list.h 的模板类
// template_class.h //
#include "list.h"
template<class T>
class temp_class {
list l;
void func();
}
void temp_class::func() {
//...
l.insert(...);
}
现在我编写了一个包含 template_class.h 的 test.cpp 文件并调用了 func 函数
// test.cpp //
#include "template_class.h"
int main() {
temp_class<int> t;
t.func();
return 0;
}
我是这样编译的
g++ test.cpp list.cpp -o test
编译器提示 test.cpp:“未定义的插入引用”。 为什么它不能工作?如何解决这个错误?
仅供引用:如果我将 list.cpp 中的内容包含在 list.h 中并只编译 test.cpp,它就可以工作。但我认为这不是一个好主意。