什么是C++模板?_百度知道

什么是C++模板?_百度知道

以下内容引自上面网址

模板是一种工具。使用它会给程序员编写大规模的软件带来方便。因为使用模板可以使程序员建立具有通用类型的函数库和类库。模板也是C++语言支持参数化多态性的工具。将一段程序所处理的对象类型参数化,就可以使这段程序能够处理某个类型范围内的各种类型的对象,这就是参数化多态性。被参数化的一段程序将会处理一定范围内的若干种不同类型的对象,即对于一定范围内的若干不同类型的对象的某种操作将对应着一个相同结构的实现。而模板这种工具就是用来解决这个问题的。由于C++语言的程序结构主要是由函数和类构成的,因此,模板也具有两种不同的形式:函数模板和类模板。
4、函数模板与模板函数
函数模板是对一组函数的描述,它不是一个实实在在的函数,编译系统并不产生任何执行代码。
当编译系统在程序中发现有与函数模板中相匹配的函数调用时,便生成一个重载函数,该重载函的函数体与函数模板的函数体相同。该重载函数称为模板函数。
函数模板与模板函数的区别如下:
(1) 函数模板不是一个函数,而是一组函数的模板,在定义中使用了参数类型。
(2) 模板函数是一种实实在在的函数定义,它的函数体与某个模板函数的函数体相同。
编译系统遇到模板函数调用时,将生成可执行代码。函数模板是定义重载函数的一种工具。一个函数模板只为一种原型函数生成一个模板函数,不同原型的模板函数是重载的。这样就使得一个函数只需编码一次就能用于某个范围的不同类型的对象上。因此,可以说函数模板是提供一组重载函数的样板。

在c++中有如下语句
int a;
char b;
long c;
float d;
像上面的 int, char, long, float 被称为“类型”。
有时需要将“类型”也做为参数来处理,比如,要写一个比较大小的函数 comp(x,y)
如果是两个int型比较就返回一个int类型的值,如果是两个float型比较就返加一个float型结果,当然可以用函数重载来实现,但利用函数模板就只要写一个函数
template<class T>
T comp(T x,T y)
{
return x>y?x:y;
}
其中template<class T>就是声明将T作为一个类型参数
和以下重载的函数比较一下
int comp(int x,int y)
{
return x>y?x:y;
}
float comp(float x,float y)
{
return x>y?x:y;
}
简单的说, 模板 就是一个函数或类模板可以解决不同类型的问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值