C++模板函数声明与实现分离问题

问题:

在C++中,用模板的方法实现链表时,有一个很棘手的问题,就是模板的声明和定义必须得放在一起,分开实现就会无法链接,在vs2019中并出现如下错误:

fatal error LNK1120: 1 个无法解析的外部命令

解决方法:

为了解决这一问题,查阅了一些资料和源码,终于得到了解决方法,具体步骤就是:

  • 在头文件中实现函数声明

  • 将每个函数的声明实现放在一个.h的文件中,具体的解决方案目录结构如下:


  • 定义一个新的头文件(如list_implemention.h),将所有函数实现的头文件包含进去,如下图所示:

  • 在函数声明的头文件末尾,包含这个头文件


  • 定义一个头文件(如 list_test.h)包含整个项目的基本头文件,如(iostrean,list.h)

  • 最后,只要在测试驱动的cpp文件中(如main.cpp)中包含以上list_test.h文件就可以了。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。