c++模板编程

 

1、什么是模板编程
1.1 模板编程可以使你的代码独立于类型
1.2 模板编程是一种在编译时期用代码生成代码的方式
1.3 function 模板借由参数化手段表现一整个族群的functions
1.4 class模板可以用来管理不同型别的元素

2、模板编程格式
template <模板参数1, 模板参数2,模板参数3>
void  function(){ }
template <模板参数1, 模板参数2,模板参数3>
class A }

3、模板参数类型
虽然模板是用来抽象数据型别,但是模板参数不仅仅可以是类型参数、还包括非类型参数、模板类参数。
3.1
template <typename T>
class List {  T tData;  };
这是模板的类型参数。在模板的作用域内T代码的是一个数据类型。
那么语句 List<int> stListA , 在编译的时候实例化了类
class List{  int tData;  }

3.2 
template <int n>
class Array  double dArray[n]; }
这是模板的非类型参数。在模板的作用域内n代码的是一个数值。
非类型参数可以是整型、枚举、指针、引用;【这些都可以退化成整数】
那么语句 Array<10> stArray, 在编译的时候实例化了类
class Array  double dArray[10]; }

3.3
template <template<typename X> class C>
这是模板的模板类参数【双重模板参数】。
template<typename Y>
class Container1 { Y xData; };

template <template X,  template<typename Y > class C >
class Adaption {  C<X> storage; }
模板 Adaption有个模板参数 Container, Container本身是个有一个型别类型参数【不具名】的模板。
语句Adaption<int, Container > st Adaption的 实例化过程 
Adaption<int , Container >=>  Container <X>=>  Container<int>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值