c++之模板

什么是模板

模板就是样板。在这里我举一个例子,数组
数组可以是int,可以是double,可以是long等
模板的本质就是把数据类型参数化,体现了面向对象的多态性

函数模板和模板函数

函数模板表示的是对不同数据类型数据进行相同处理的一类函数
模板函数就是讲函数模板实例化生成的具体函数
格式

template <class 模板形参1,class模板形参2,...>
返回类型 函数名(参数表)
{
	函数体
}

举例:表明两个相同数据类型比较大小返回大的元素

template<class T>
T &max(T &r1,Tr &2)
{
	return (r1>r2)?r1:r2;
}

类模板和模板类

如果在类的定义中将类中的数据成员的类型、成员函数的参数的类型、成员函数的返回值的类型都用模板类型形参来表示,这样就构成了一个代表多个类的类模板。比如数组类模板可适用于整型数组类、浮点型数组类、复数数组类等等

类模板声明格式

template<class 模板类型形参1,class 模板类型形参2,...>
class 类模板名
{
	类模板体
};

注意:
如果在类的外部定义类模板中的成员函数,必须采用类似函数模板的格式

template<class 模板类型形参1,class 模板类型形参2,...>
返回类型 类模板名<模板类型形参1,模板类型形参2,...>::成员函数名(参数表)
{
	成员函数体
}

类模板经过实例化产生的类叫做模板类
模板类定义格式
类模板名 <实际类型的参数列表> 类对象名(构造函数参数);

值得注意的是,类模板可以作为基类
template <class 派生类模板类型形参,class 基类模板类型形参>
class 派生类模板名 : 继承方式 基类模板名<不带class的基类模板类型形参> { … };

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值