C++中函数模板template的使用

下面以一个简单程序演示一下函数模板的使用:

 1 #include<iostream>
 2 using namespace std;
 3 template<class Type>
 4 Type Abc(Type a,Type b,Type c)
 5 {
 6     return a+b+c;
 7 }
 8 int main()
 9 {
10     int a=1,b=2,c=3;
11     cout<<"a= "<<a<<",b= "<<b<<",c= "<<c<<endl;
12     cout<<"使用函数模板的结果为:\n";
13     cout<<Abc(a,b,c)<<endl;
14     float f=4,d=0.6,e=2.3;
15     cout<<"f= "<<f<<",d= "<<d<<",e= "<<e<<endl;
16     cout<<"使用函数模板的结果为:\n";
17     cout<<Abc(f,d,e)<<endl;
18     return 0;
19 }

调试运行结果:

时间: 2024-10-09 16:45:24

C++中函数模板template的使用的相关文章

C++中函数模板template和函数参数为指针,且有返回值的结合使用

1 #include<iostream> 2 using namespace std; 3 // 利用模板函数计算一个表达式 4 template<class Type> 5 Type Abc(Type a,Type b,Type c) 6 { 7 return a+b+c; 8 } 9 // 利用引用参数指针计算一个表达式 10 template<class Type> 11 Type ABC(Type *a,Type *b,Type *c) 12 { 13 retu

【转载】C++中的模板template &lt;typename T&gt;

从一位大佬的程序中看到的,好像挺牛的!! 这个是C++中的模板..template<typename T> 这个是定义模板的固定格式,规定了的..模板应该可以理解到它的意思吧.. 比如你想求2个intfloat 或double型变量的值,只需要定义这么一个函数就可以了,假如不用模板的话,你就必须针对每种类型都定义一个sum函数..int sum(int, int);float sum(float, float);double sum(double, double); 1.因为T是一个模版实例化

c++中函数模板的使用

在程序设计中,经常要使用到函数体相同的函数,如果我们要根据所使用的参数表不同来决定调用具体哪个函数时,我们经常使用的方式是进行函数重载,但是当我们的函数很多的时候会发现实现起来很不方便.所以c++提供了函数模板的概念,这和类模板实现起来的方式是类似的. 下面举个例子,我们经常要使用的冒泡排序算法,被排序的对象可能是double,int,char,float等等,下面是实现代码: template <typename T1,typename T2> void bubble(T1 *A, T2 l

C++中函数模板,显式具体化,显式实例化:

函数模板 形如: template<typename T>  //没有分号 void func(T &a,T &b); 称为函数模板,其中,template和typename为关键字,typename可以用class来替代.T(可以用其他的名称)表示一种泛型,既可以表示int型,也可以表示double或其他类型,将它想象成C++里面的数据类型的集合. 也就是说: void func(T &a,T &b)= void func(int &a,int &am

Tornado框架中视图模板Template的使用

上文的程序中有这样一段: class MessageHandler(tornado.web.RequestHandler): def get(self): self.write(''' <html> <head> <title>Please Input Message</title> </head> <body> <form action="/message" method="post"&

C++中使用模板template递归函数

下面使用模板递归函数计算一个数组中前n个元素之和: 1 // 使用模板函数递归计算前n个元素之和 2 3 #include<iostream> 4 using namespace std; 5 template<class Type> 6 Type Rsum(Type a[],int n) 7 { 8 if(n<=0) 9 { 10 return 0; 11 } 12 else 13 { 14 return Rsum(a,n-1)+a[n-1]; 15 } 16 } 17 i

快速排序函数模板

这段时间对STL比较痴迷,遂做了些许研究,今天把原来写过的快速排序算法用模板函数重新写了一下,把代码贴出来分享一下 有两个版本,版本二可以传入比较器,自己定义排序规则 快速排序算法思路: 1)从序列中选出一个元素作为基准: 2)重排序列,所有比基准小的元素位于基准左侧,比基准大的元素位于基准右侧,和基准相等的元素位于任意一侧,此过程称为分组: 3)以递归的方式对小于基准的分组和大于基准的分组分别进行排序. #include <vector> #include <list> //打印

C++ 函数模板一(函数模板定义)

//函数模板定义--数据类型做参数 #include<iostream> using namespace std; /* 函数模板声明 1.函数模板定义由模板说明和函数定义组成,并且一个模板说明对应一个函数定义 2.模板说明的类属参数必须在函数定义中至少出现一次 3.函数参数表中可以使用类属类型参数,也可以使用一般类型参数 */ /* template关键字告诉c++编译器现在要进行泛型编程 typename或者class告诉c++编译器T是一个数据类型,不要进行语法检查 typename和c

C++中的模板编程

一,函数模板 1.函数模板的概念 C++中提供了函数模板,所谓函数模板,实际上是建立一个通用函数,其函数的返回值类型和函数的参数类型不具体指定,用一个虚拟的类型来表示.这个通用函数就被称为函数的模板. 当我们在开发中,经常会遇到一些函数体实现方式类似的函数,例如交换两个字符,交换两个数字函数,这两个函数的函数体实现是一样的,凡是这样的函数,我们都可以通过函数模板的方式来只定义一次.在调用函数时,系统会根据实参的数值类型来取代模板中的虚拟类型.再代入函数体中进行计算,这样就实现了定义一个函数模板,