C++中函数模板的用法详细解析

来源:互联网 发布:sql语句统计数量 编辑:程序博客网 时间:2024/06/18 10:24

一、函数模板的产生原因:

函数的重载可以实现一个函数名多用,将功能相同或者类似函数用同一个名来定义。这样可以简化函数的调用形式,但是程序中,仍然需要分别定义每一个函数。那么有什么办法可以让我们少写一些函数呢?C++提供了函数模板就可以极大地方便同类型函数的使用。

二、什么是函数模板?

所谓函数模板实际上是建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代表,这个通用函数就称为函数模板。凡是函数体相同的函数都可以用这个模板来代替,不必定义多个函数,只需要在模板中定义一次即可。在调用函数时,系统会根据实参的类型来取代模板中的虚拟类型,从而实现了不同函数的功能。

三、函数模板的一般形式

template <typename T>(通用函数定义)或者template <class T>

四、示例比较

普通函数,不使用函数模板:

#include<iostream>using namespace std;int n_add(int a,int b)                              //定义函数n_add用于int型数据相加{ int c; c=a+b; return c;} double n_add(double a,double b)    //定义函数n_add用于double型函数相加{ double c; c=a+b; return c;}int main(){ cout<<n_add(8,2)<<endl;             //调用n_add函数 cout<<n_add(8.35,5.5)<<endl;   //调用n_add函数 return 0;}

使用函数模板:

#include<iostream>using namespace std;template<typename T>T n_add(T a,T b){ T c; c=a+b; return c;} int main(){ cout<<n_add(8,2)<<endl; cout<<n_add(8.12,2.2)<<endl; return 0;}

对比不使用函数模板和使用函数模板的代码,在函数的调用形式上进行了简化,使用了函数的重载技术,对于所有的数据,统一使用函数n_add进行操作,编译系统会根据数据的类型自动调用对应的函数。我们使用了函数模板,我们就没有必要去一一书写对应的函数,我们只需要构造相应的模板,然后系统会自动判断数据的类型,然后替代对应的虚拟类型。




1 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 白鞋子洗了发黄怎么办 来大姨妈腰疼怎么办 绒面长筒靴掉筒怎么办 钢铁雄心4很卡怎么办 点透视点在纸外怎么办 被新浪微博屏蔽怎么办 孩子痰多鼻涕多怎么办 感冒痰多鼻涕多怎么办 最近鼻涕和痰多怎么办 鼻涕痰多怎么办没感冒 一岁宝宝痰多怎么办 小孩鼻涕和痰多怎么办 鼻子老长鼻屎要怎么办 眼睛老有眼屎是怎么办 眼睛有干眼屎是怎么办 小孩流黄鼻涕是怎么办 孕妇9个月流鼻涕怎么办 流黄鼻涕两周了怎么办 大人流黄脓鼻涕怎么办 鼻子一直流鼻涕像水一样怎么办 6个月婴儿流鼻涕怎么办 9个月婴儿流鼻涕怎么办 狗狗晕车吐了怎么办 小狗又拉又吐怎么办 犬瘟热流黄鼻涕怎么办 2个月幼犬流鼻涕怎么办 5个月宝宝流鼻血怎么办 1岁宝宝感冒鼻塞怎么办 4个月宝宝鼻塞怎么办 4岁宝宝感冒鼻塞怎么办 宝宝4个月流鼻涕怎么办 3个月的宝宝鼻塞怎么办 50天的小孩鼻塞怎么办 鼻子流脓鼻涕2周怎么办 两岁宝宝流清鼻涕怎么办 1岁宝宝流黄鼻涕怎么办 宝宝上火流黄鼻涕怎么办 一周岁宝宝流清鼻涕怎么办 一周岁流清鼻涕怎么办 4岁宝宝感冒发烧怎么办 6个月宝宝流鼻涕怎么办