VS 2013 C++ 类模板定义与实现 进行分离
2016-10-09 17:06
656 查看
最近在看C++类模板的定义与实现,在按照正常的类的流程进行分离时发现“LNK2019: 无法解析的外部符号”这个错误。
解决方案:
1. 如果坚持使用分离的方法解决,可以在main.cpp中的include “template_class.h”要修改成"template_class.cpp",就不会出现上述错误。
2. 此外可以把模板的定义和实现都放到一个头文件(.h)中,之后再在main.cpp中使用,也不会有问题。
我查找了很多资料,发现,出现这个问题的原因是:
一:在VS中,因为C++标准明确表示,当一个模板不被用到的时候它就不应该被实例化出来(可点击链接查看详情);
二:此外,目前VS中不支持export
template<class T>形式,不知道未来会不会支持,也有网友指出“现在没有未来也不一定有的说法”;
解决方案:
1. 如果坚持使用分离的方法解决,可以在main.cpp中的include “template_class.h”要修改成"template_class.cpp",就不会出现上述错误。
2. 此外可以把模板的定义和实现都放到一个头文件(.h)中,之后再在main.cpp中使用,也不会有问题。
我查找了很多资料,发现,出现这个问题的原因是:
一:在VS中,因为C++标准明确表示,当一个模板不被用到的时候它就不应该被实例化出来(可点击链接查看详情);
二:此外,目前VS中不支持export
template<class T>形式,不知道未来会不会支持,也有网友指出“现在没有未来也不一定有的说法”;
相关文章推荐
- C++模板应用——让模板定义和实现分离的方法
- C++模板定义与实现分离所导致的链接错误LNK2019
- C++模板应用——让模板定义和实现分离的方法
- 【c++模板】模拟实现有模板的双向链表(List)(声明和定义分离)
- C++模板应用——模板定义和实现分离
- 转:C++模板定义和实现分离导致的编译错误
- c++模板定义和实现分离
- C++模板编程:如何使非通用的模板函数实现声明和定义分离
- C++模板应用——让模板定义和实现分离的方法
- C++类模板定义与实现的分离—学习C++数据抽象和问题求解
- C++模板定义和实现分离导致的编译错误
- C++的类模板的问题(实现文件和头文件放在一起), 因为模板不支持分离编译
- c/c++模板的定义和实现分开的问题(一)
- C++ 模板实现败者树,进行多路归并
- C++中模板声明与实现的分离问题
- 对C++中为模板定义特殊的实现的认识
- C++模板声明定义分离编译错误详解
- 我用c++实现的模板单链表类.并用一个一元多项式进行测试.
- C++ 模板实现栈数据结构, 用宏将模板类声明与实现分离
- c++模板之声明定义分离编译模型