#include <iostream>
int add(int a,int b)
{
return a + b;
}
float add(float a,float b)
{
return a + b;
}
double add(double a,double b)
{
return a + b;
}
//template是模板的意思,表示后面的函数是模板函数
//typename类型的名字,表示T表示的是一种类型,可以是任意类型
template <typename T>
T sub(T a, T b)
{
return (T)(a - b);
}
//T是任何一种类型,N是任何一种类型, 可以相同,可以不同
template <typename T, typename N>
void f(T a, N b)
{
std::cout<< a << "," << b <<"\n";
}
//模板函数必须调用之后才能确定有没有错。
void main()
{
std::cout<< sub<int>(4,3);
//当我们调用int类型的sub函数的时候,编译器自动生成下面的函数:
//int sub(int a,int b)
//{
// return a - b;
//}
sub<double>(4.4, 3.3);
//当我们调用double类型的sub函数的时候,编译器自动生成下面的函数:
//double sub(double a,double b)
//{
// return a - b;
//}
std::cout<< sub((char)127,(char)30);
//当我们调用sub函数的时候,编译器自动生成下面的函数:
//char sub(char a,char b)
//{
// return a - b;
//}
//sub(127, (char)30);// 模板 参数“T”不明确
sub<int>(127, (char)30);//第二个参数会转为int类型
int arr[10];
std::cout<< sub(arr+10, arr);//0000000A
f(1,2);//1,2
f('a', 4.4);//a,4.4
system("pause");
}
模板:template
猜你喜欢
转载自blog.csdn.net/weixin_43374319/article/details/83989689
今日推荐
周排行