模板(c++)

1、泛型编程:

编写与类型无关的通用代码,是代码复用的一种手段,模板是泛型编程的基础

2、函数模板

2.1 函数模板的概念

函数模板代表了一个函数家族,该函数模板与类型无关,在使用时被参数化,根据实参类型产生函数特定类型版本

2.2函数模板格式

template<typename T1,typename T2,……>

返回值类型  函数名 (参数列表){}

注意:typename是用来定义模板参数关键字,也可以用class

2.3函数模板的原理

在程序编译的过程中,会将函数模板作为蓝图,根据后面的代码所用到的数据类型来推演生成对应的函数。用到多少种类型的数据,就会生成多少个函数。

2.4函数模板的实例化

用不同类型的参数使用函数模板时,称为函数模板的实例化。模板参数实例化分为:隐式实例化 和显式实例化。

2.4.1隐式实例化

让编译器根据实参推演模板参数的实际类型

2.4.2显式实例化

在函数名后的<>指定模板参数的实际类型

3、类模板

3.1类模板的定义格式

template<class T1,class T2,……,class Tn>

class

{
};

3.2

其中与typedef的关系,在栈中一个栈存double,一个栈存int,比较麻烦,而类模板可以很好解决;同时类模板都是显示实例化

模板一般不声明与定义分离,会编译报错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值