您的位置:首页 > 编程语言 > C语言/C++

C++函数模板

2016-03-16 15:41 155 查看
/*======================================================================
函数模板:
实例:
int max(int a,int b){return a>b?a:b;}
float max(float a,float b){return a>b?a:b;}
char max(char a,char b){return a>b?a:b;}
数据类型不同  逻辑是相同的
关键字
template	typename	class(表示数据类型不是类)
函数模板
类模板
template<class T>//class也可以的是typename
T max(T a,T b)//函数模板
{
return a>b?a:b;
}
int main()
{
int a=max(1,2);//模板函数	没有数据类型  根据输入参数自动匹配
有数据类型    输入的参数必须符合输入的数据类型
cout << max<int>(1, 2) << endl;
}
================================================================
单参数模板
template<int size>
void display()
{
cout<<size<<endl;
}
================================================================
多参数模板
template<typename T,typename C>
void(T t,C c)
{
cout<< t << c << endl;
}
================================================================
模板参数重载
template<typename T>
template<typename T,float>
template<typename T,typename C>
函数模板本身并不是相互重载的关系
生成模板函数后
void print<int>(int)
void print<int>(int,float)
void print<int>(int,int)
便形成了重载
/*======================================================================*/
#include <iostream>
using namespace std;
template<class T>
T max(T a, T b)
{
return a > b ? a : b;
}
template<int size>//函数模板
void display()
{
cout << size << endl;
}
template<typename T, typename C>
void test(T t, C *c)
{
cout << t << c << endl;
}
int main()
{
display<1>();//模板函数
test<int, char>(4, "ds");
cout << max<int>(1, 2) << endl;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: