第一章 数据结构 模板

模板(template)

一、模板概述
●模板是对具有相同特性的函数或类的再抽象,模板是一种参数化的多态性工具。
●所谓参数化多态性,是指将程序所处理的对象的类型参数化,使一段程序代码可以用于处理多种不同类型的对象。
●采用模板编程,可以为各种逻辑功能相同而数据类型不同的程序提供一种代码共享的机制。
●分为函数模板与类模板
二、模板实例化
模板通过参数实例化可以构建具体的函数或类,称为模板函数和模板类
如果不使用模板进行书写,则会有出现下面的情况:

例:数据为int或double时的求最大值问题

int Max(int x,int y){
       if(x>y)
           return x;
       else
           return y;
}

double Max(double x,double y){
       if(x>y)
           return x;
       else
           return y;
}

●这例问题有两个函数。
●对于同一问题,各函数只是参数类型不一样,其功能在本质上完全相同。
●若能写一段通用代码,适用于各种数据类型,则代码的可重用性大大提高。
●函数模板就是为满足这一需求而产生的。
三、定义模板
1、函数模板:
定义:

template <模板形参表>
返回值类型 函数名(参数表){
        函数体
 }

注:template是模板定义的关键字。
<模板形参表>中包含一个或多个用逗号分开的模板形式参数,每一项均由关键字class或typename引导一个由用户命名的标识符,此标识符为模板参数(用来进行类型传递)
2、类模板:
●如同函数模板一样,类模板是参数化的类,即用于实现数据类型参数化的类。
●应用类模板可以使类中的数据成员、成员函数的参数及成员函数的返回值能根据模板参数匹配情况取任意数据类型。
●这种类型既可以是C++预定义的数据类型,也可以是用户自定义的数据类型。
定义:

template <模板形参表>
class 
类模板名
{   
成员的声明;
} 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值