【语言基础】C++模板

在C++中模板分为两类:函数模板与类模板(多态的一种)
(定义的叫函数模板,实例出来的叫模板函数)

函数模板代码形式如下:

template <class type1,class type2....>
type1  func(type2 a,type2 b....){

		/*函数体*/
}
//type是类型参数,当定义好模板后,在代码中调用模板函数,则会自动将传入的参数类型替换type

可以看到模板是针对类型的,即使用模板时针对的是函数体相同,但处理的变量类型不同的情况。

例如,我们写一个交换int型变量的函数swap(),如果后面又需要添加一个交换double类型的swap又该怎么办?如果我们重写一个新的函数,两个swap之间其实就只有变量类型不同而已,如果代码体量很大,重写终究是件很累赘的事情,利用模板则可以在编译时自动生成对应类型的模板函数,对写代码的人来说无疑是极其方便的。

除了让编译器自动来替换参数的类型,还可以自己手动替换,例如:

template <class T>
T func(){
	/*函数体*/
}

func<int>();    //手动设置

类模板代码形式如下:

template <class T>
class A{
	....
}

//类模板生成对象
A<int> a1;
A<double> a2(1.0);		//联系STL,生成容器就是这种方式、

//在类模板外进行成员函数定义,要写成函数模板形式
template <class T>
返回类型 类名<T>::成员函数名(T a,T b){...}    //注意这里写的<T>

//在类模板外进行static变量定义
template <class T>
返回类型 类名<T>::m_static = 0;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值