模板类构造函数的编译器错误“未定义引用...”表示缺少显式实例化程序中使用的特定模板类的说明。出现此问题的原因是编译器在明确需要模板代码之前不会自动编译模板代码。
将显式模板实例化语句附加到实现文件的末尾(可乐)在本例中为 .cpp):
template class cola<float>; template class cola<string>;
此外,请将以下行包含在nodo_colaypila.cpp:
template class nodo_colaypila<float>; template class nodo_colaypila<std::string>;
这会强制编译器编译所需的模板类。
从 cola 中移动实现代码.cpp 和 nodo_colaypila.cpp 分别转换为 cola.h 和 nodo_colaypila.h。这确保了使用模板类的所有翻译单元中函数定义的可用性。
解决方案 1:
解决方案 2:
nodo_colaypila<T><T>* ult, pri;
应该是:
nodo_colaypila<T>* ult, *pri;
以上是为什么我会收到模板类构造函数的'未定义引用”错误,以及如何修复它们?的详细内容。更多信息请关注PHP中文网其他相关文章!