#include<iostream>
using namespace std;
/*
写那个函数实现数据的互换
1.显示类型调用
2.自动类型推导
*/
//让 类型参数化 ===, 方便程序员进行编码
// 泛型编程
//template 告诉C++编译器 我要开始泛型编程了 .看到T, 不要随便报错(T时type的缩写,是一种抽象数据类型)
template <typename T>
void mySwap(T&a,T&b)
{
T tem;
tem = a;
a = b;
b = tem;
cout << "我是函数模板,你传递给我什么样子的数据类型,我就按照什么数据类型进行计算" << endl;
}
//函数模板的调用
// 显示类型 调用
// 自动类型 推导
int main(void)
{
{
int a = 10;
int b = 20;
mySwap<int>(a, b);//函数模板,典型的显示调用方式
mySwap(a, b);//隐式调用的调用,进行自动类型的推导,不常用
cout << "a=" << a << endl;
cout << "b=" << b << endl;
}
{
char a = 'a';
char b = 'b';
mySwap(a, b);
mySwap<char>(a, b);
cout << "a=" << a << endl;
cout << "b=" << b << endl;
}
system("pause");
return 0;
}
/*
* 注意,系统内部有swap函数,如果定义相同可能麻烦
函数模板的定义与两种调用方式\
------------------------------------------
我是函数模板,你传递给我什么样子的数据类型,我就按照什么数据类型进行计算
我是函数模板,你传递给我什么样子的数据类型,我就按照什么数据类型进行计算
a=10
b=20
我是函数模板,你传递给我什么样子的数据类型,我就按照什么数据类型进行计算
我是函数模板,你传递给我什么样子的数据类型,我就按照什么数据类型进行计算
a=a
b=b
请按任意键继续. . .
*/
002函数模板定义和调用的两种方式
猜你喜欢
转载自blog.csdn.net/baixiaolong1993/article/details/89482434
今日推荐
周排行