今天在看某c++框架源码时,发现模板类里的部分函数可以特例化,感觉很神奇便尝试了下,发现很多平时不会注意的c++细节及知识,写下来分享给大家,以便大家遇到相似问题时可以少踩点坑。
模板类会出现链接问题,编译不通过
如果模板类.h文件和.cpp文件分开存放,然后编译的时候会提示链接错误,无法生产exe文件,具体的原因可以参看编译原理。
决解办法:1 .h文件和.cpp文件合成一个文件
2 在使用该类模板处包含.cpp文件即可.模板类部分函数特例化
template<typename T> class test
{
public:
test(){};
~test(){};
void gohome();
void gogo();
};
template<typename T> void test<T>::gogo(){
cout << "gogo" << endl;
}
C++模板类特例化与链接问题解析

本文探讨了在C++中遇到的模板类链接问题及其解决方案,包括将头文件和cpp文件合并以及在需要的地方包含cpp文件。同时,介绍了模板类部分函数特例化的挑战和解决办法,如何通过特例化限制用户实例化模板类的行为,以达到约束用户代码的目的。
最低0.47元/天 解锁文章
625

被折叠的 条评论
为什么被折叠?



