004函数模板与普通函数的区别函数模板遇上函数重载

#include<iostream>
using namespace std;

//让 类型参数化 ===, 方便程序员进行编码
// 泛型编程 
//template 告诉C++编译器 我要开始泛型编程了 .看到T, 不要随便报错

//模板函数
template<typename T>
void mySwap(T a,T b)
{
	cout << "a=" <<a<< endl;
	cout << "b=" <<b<< endl;
	cout << "我是模板函数,欢迎call我" << endl;
}
void mySwap(int a,int b)//函数1
{
	int tem;
	tem = a;
	a = b;
	b = tem;
	cout << "我是普通的函数1,欢迎调用" << endl;
}
void mySwap(int a,char b)
{
	cout << "a=" << a << endl;
	cout << "b" << b << endl;
	cout << "我是普通函数2,欢迎调用" << endl;
}


int main(void)
{
	int a = 10;
	char c = 'c';

	mySwap(a, c);//调用普通函数2 ,可以进行隐式的数据类型转换
	mySwap(c, a);//调用函数1
	mySwap(c, c);//调用模板函数,将严格的按照类型进行匹配,不会进行自动类型转换
	system("pause");
	return 0;
}
/*
函数模板与普通函数有什么区别函数模板遇上函数重载.cpp
总结: 函数模板函数的调用(本质:类型参数化): 将严格的按照类型进行匹配,不会进行自动类型转换
普通函数的调用:  可以进行隐式的类型转换(两个参数类型可以不一样)

a=10
bc
我是普通函数2,欢迎调用
我是普通的函数1,欢迎调用
a=c
b=c
我是模板函数,欢迎call我
请按任意键继续. . .




*/

猜你喜欢

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