
01
模板与普通实现

相比普通的成员函数等的实现多了一步根据类型匹配替换的过程,而今天我们聊的这个话题:模板中声明和实现一般都放在一起,其实就是匹配过程需要注意的地方,并且通常我们会把模板的定义和实现都放在头文件中以便使用。
02
CPP编译

一般的类等声明和定义都分别放在相应的.cpp和.h中,而对于模板这样却存在一些问题。首先我们需要了解C++源文件的大致编译过程:

以上是大部分编译器的一个编译过程,相信朋友们也应该看过很多次了,好像挺简单的,不过还是有几点经常犯糊涂的。
首先上面的编译过程都是以一个.cpp作为编译单元 ,但是一个编译单元不仅仅只有一个.cpp文件,还包括其所包含的头文件等,.cpp文件中的头文件最终都会在对应的位置进行展开,因此各.cpp文件在链接之前是相互独立的。
既然包含的头文件都会在每个源文件中进行展开,所以一般都不会在头文件中直接定义变量,容易造成重复定义,同样C语言编译过程也是类似的。
虽然编译的过程似乎很容易理解,需要注意的东西还是挺多的。
03
模板定义与实现分开








04
模板定义与实现处理




最 后
这里小哥就介绍了一下C++中类模板编写的注意事项,希望本文能够对你有帮助,该系列还会持续更新,大家可以持续关注~
查看更多,可以在公众号内回复"1024"即可获取~
推荐好文 点击蓝色字体即可跳转
☞ 专辑|手撕C语言
☞ 专辑|经验分享
文章转载自嵌入式情报局,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。





