千家信息网

C++类模板、函数模板全特化以及偏特化的实例用法

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍"C++类模板、函数模板全特化以及偏特化的实例用法",在日常操作中,相信很多人在C++类模板、函数模板全特化以及偏特化的实例用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作
千家信息网最后更新 2026年11月02日C++类模板、函数模板全特化以及偏特化的实例用法

这篇文章主要介绍"C++类模板、函数模板全特化以及偏特化的实例用法",在日常操作中,相信很多人在C++类模板、函数模板全特化以及偏特化的实例用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"C++类模板、函数模板全特化以及偏特化的实例用法"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

一、类模板全特化、偏特化

#pragma once#include #include template class TC{public: TC() { std::cout << "泛化版本构造函数" << std::endl; } void funtest() { std::cout << "泛化版本成员函数" << std::endl; }}; template<>class TC{public: TC() { std::cout << "全特化版本构造函数" << std::endl; } void funtest() { std::cout << "全特化版本成员函数" << std::endl; }}; template<>void TC::funtest(){ std::cout << "全特化版本函数" << std::endl; }

main.cpp

#include #include "template.h"using namespace std; int main(){ TC tchar; tchar.funtest(); TC tint; tint.funtest(); TC tdouble; tdouble.funtest();}

输出:

泛化版本构造函数泛化版本成员函数全特化版本构造函数全特化版本成员函数泛化版本构造函数全特化版本函数

二、类模板偏特化

1、模板参数数量上:

template.h

#pragma once#include #include template class TC2{public: void funtest() { std::cout << "泛化版本成员函数" << std::endl; }}; template class TC2{public: void funtest() { std::cout << "偏特化版本成员函数" << std::endl; }};

main.cpp

#include #include "template.h"using namespace std; int main(){ TC2 tdouble2; tdouble2.funtest(); TC2 tint2; tint2.funtest()}

输出:

泛化版本成员函数偏特化版本成员函数

2、从模板参数范围:

template.h

#pragma once#include #include template class TC3{public: void funtest() { std::cout << "泛化版本成员函数" << std::endl; }}; template class TC3{public: void funtest() { std::cout << "const T偏特化版本成员函数" << std::endl; }}; template class TC3{public: void funtest() { std::cout << "T&偏特化版本成员函数" << std::endl; }}; template class TC3{public: void funtest() { std::cout << "T *偏特化版本成员函数" << std::endl; }};

main.cpp

#include #include "template.h"using namespace std; int main(){ TC3 tint3; tint3.funtest(); TC3 tint3_ref; tint3_ref.funtest(); TC3 tint3_point; tint3_point.funtest(); TC3 tint3_const; tint3_const.funtest();}

输出:

泛化版本成员函数T&偏特化版本成员函数T *偏特化版本成员函数const T偏特化版本成员函数

三、函数模板全特化(不能偏特化)

template.h

#pragma once#include #include template void tfunc(T& a, U& b){ std::cout << "tfunc 泛化版本函数" << std::endl;} template <>void tfunc(int& a, int& b){ std::cout << "tfunc 全特化版本函数" << std::endl;}

main.cpp

#include #include "template.h"using namespace std; int main(){ int a1 = 1; double b1 = 3.2; tfunc(a1, b1); tfunc(a1, a1);}

输出:

tfunc 泛化版本函数tfunc 全特化版本函数

到此,关于"C++类模板、函数模板全特化以及偏特化的实例用法"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

函数 特化 版本 成员 模板 实例 C++ 学习 输出 参数 更多 帮助 实用 接下来 数量 文章 方法 理论 知识 篇文章 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 深圳市人人互联网科技有限公司 华服互联网科技靠谱吗 与互联网科技公司 互联网金融 科技金融 广州凡科互联网科技 互联网科技公司有哪些 互联网金融监管科技 广西拼得多互联网科技有限公司 互联网和高科技公司 博兴的互联网电子科技公司 互联网科技产品 济南华为互联网科技产业总部基地 消费医药和互联网科技 互联网科技和法律行业 中天科技中国工业互联网 互联网与数字科技关系 南京一网一红互联网科技有限公司 绵阳真晨互联网科技有限公司 华人运通互联网科技公司 科技互联网专业务虚会材料 蓝思科技飞鸽互联网 美国互联网黑科技 一五八零互联网科技 互联网金融和金融科技 华脉科技工业互联网产品 港股科技和互联网 卡尔迅互联网科技有限公司 南京一网一红互联网科技有限公司 河南商务圈互联网科技有限公司 平安好医生打造互联网科技医疗
0