当前位置: 首页 > news >正文

模板的特化

模板分为类模板和函数模板,特化分为全特化和偏特化(特化是对模板的特化,因此必须存在模板才可以进行特化)

  • 全特化:给模板中的所有模板参数指定一个具体的类
  • 偏特化:部分指定模板参数的类
  • 类模板可以全特化也可以偏特化
  • 函数模板只能全特化(因为重载可以达到偏特化的效果)

类:

 1 template<typename T1, typename T2>  
 2 class Test  
 3 {  
 4 public:  
 5     Test(T1 i,T2 j):a(i),b(j){cout<<"模板类"<<endl;}  
 6 private:  
 7     T1 a;  
 8     T2 b;  
 9 };  
10   
11 template<>  
12 class Test<int , char>  
13 {  
14 public:  
15     Test(int i, char j):a(i),b(j){cout<<"全特化"<<endl;}  
16 private:  
17     int a;  
18     char b;  
19 };  
20   
21 template <typename T2>  
22 class Test<char, T2>  
23 {  
24 public:  
25     Test(char i, T2 j):a(i),b(j){cout<<"偏特化"<<endl;}  
26 private:  
27     char a;  
28     T2 b;  
29 };  

函数:

 1 //模板函数  
 2 template<typename T1, typename T2>  
 3 void fun(T1 a , T2 b)  
 4 {  
 5     cout<<"模板函数"<<endl;  
 6 }  
 7   
 8 //全特化  
 9 template<>  
10 void fun<int ,char >(int a, char b)  
11 {  
12     cout<<"全特化"<<endl;  
13 }  
14   
15 //函数不存在偏特化:下面的代码是错误的  
16 /* 
17 template<typename T2> 
18 void fun<char,T2>(char a, T2 b) 
19 { 
20     cout<<"偏特化"<<endl; 
21 } 
22 */  

 

转载于:https://www.cnblogs.com/mrlsx/p/5862755.html

相关文章:

  • My favorite books
  • JVM(一)——JMM
  • 使用eval元素
  • 属性选择器[ ]里的东西,哪些要加引号
  • hibernate.cfg.xml常见配置
  • apple有话说
  • Centos7 修改mysql指定用户的密码
  • mvn:default-servlet-handler/标签作用
  • 转几篇.Net的文章
  • ubuntu在vim编辑时,方向键无法正常使用
  • browser 编程中 Delphi 如何返回数组给 javascript
  • 应用IBatisNet+Castle进行项目的开发
  • 陪女友逛街完全手册 --搞笑
  • iOS 推送
  • 由浅入深学“工厂模式”(2)
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • 2019.2.20 c++ 知识梳理
  • android图片蒙层
  • Angular 响应式表单 基础例子
  • IndexedDB
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • 从零开始学习部署
  • 从伪并行的 Python 多线程说起
  • 对JS继承的一点思考
  • 记一次和乔布斯合作最难忘的经历
  • 力扣(LeetCode)21
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 前端学习笔记之原型——一张图说明`prototype`和`__proto__`的区别
  • 如何在GitHub上创建个人博客
  • 使用 Xcode 的 Target 区分开发和生产环境
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • ​插件化DPI在商用WIFI中的价值
  • #define,static,const,三种常量的区别
  • #单片机(TB6600驱动42步进电机)
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (3)llvm ir转换过程
  • (Ruby)Ubuntu12.04安装Rails环境
  • (八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (二)c52学习之旅-简单了解单片机
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (论文阅读11/100)Fast R-CNN
  • (排序详解之 堆排序)
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (转)AS3正则:元子符,元序列,标志,数量表达符
  • (转载)微软数据挖掘算法:Microsoft 时序算法(5)
  • .net 4.0 A potentially dangerous Request.Form value was detected from the client 的解决方案
  • .NET 8.0 发布到 IIS
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .NET NPOI导出Excel详解
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)