002函数模板定义和调用的两种方式

#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
请按任意键继续. . .



 */

猜你喜欢

转载自blog.csdn.net/baixiaolong1993/article/details/89482434