《随笔二十二》—— C++中的“ 函数模板 和 类模板 ”

本文详细介绍了C++中的函数模板和类模板,包括它们的定义、作用、实例化过程以及模板参数的默认实参。函数模板提供了一种逻辑功能相同但数据类型不同的函数的统一描述方式,而类模板则用于创建参数化的类。同时,文章讨论了模板函数、模板类以及模板参数的使用规范和注意事项。
摘要由CSDN通过智能技术生成

 


前言


●   模板(Template)是一个包含未指定类型的函数或类, 因此模板并不是一个真正的函数或类, 而是代表了一组函数或类, 当为模板函数或类指定了一种类型时,就生成了此模板的一个实例, 这个操作叫做模板实例化。

 

●  模板可分为函数模板和类模板, 而函数模板又可以分为函数模板和模板函数。对于函数模板, 当编译系统发现了一个对应的函数调用时,将根据实参的类型来确认是否匹配函 数模板中对应的形参, 然后生成一个重载函数, 称该重载函数为模板函数

函数模板与模板函数的区别在于:函数模板与类相似,是模板的定义; 而模板函数与对象相似,它是函数模板的实例, 具有程序代码、占用内存空间等特征.

 

● 同样, 在说明了一个类模板后,也可以创建类模板的实例,即生成模板类。类模板与模板类的区别在于: 类模板是模板的定义,不是一个实实在在的类,模板类才是实实在在的类。


函数模板 


●  函数模板是C++的新特性, 这个概念在C语言中是没有的。与函数不同的是, 函数模板不是一个实实在在的函数, 而是对逻辑功能相同但数据类型不同的一种函数的统一描述。利用函数模板,可以对函数的类型(返回类型、参数类型)进行参数化处理,也就是函数的类型也可以像变量一样改变。利用函数模板可以用一种逻辑过程处理不同类型的数据,从而极大地提高了编程的效率。

 

●   函数模板的定义格式如下:

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

}

格式说明如下:

(1)模板类型参数名代表形形色色数据类型的通用参数名,它可以

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值