#include<iostream>
#include<string>
#include<fstream>//头文件包含
using namespace std;
//函数模板注意事项
// 1、自动类型推导,必须推导出一致的数据类型T才可以使用
// 2、模板必须要确定出T的数据类型,才可以使用
template<class T>//声明一个模板,告诉编译器后面代码中紧跟着的T不要报错,T是一个通用数据类型
//typename可以替换成class
void myswap(T& a, T& b)
{
T temp = a;
a = b;
b = temp;
}
//1、自动类型推导,必须推导出一致的数据类型T才可以使用
void test01()
{
int a = 10;
int b = 20;
char c = 'd';
//myswap(a, b);//正确
//myswap(a, c);//错误 推导不出一致的T类型
myswap<int>(a, b);
cout << "a= " << a << endl;
cout << "b= " << b << endl;
}
//2、模板必须要确定出T的数据类型,才可以使用
template<class T>
void func()
{
cout << "func的调用" << endl;
}
void test02()
{
//func();//错误 func中没有使用T 模板确定不出T的类型
func<int>();//可以正常运行
}
int main()
{
//test01();
test02();
system("pause");//按任意键继续
return 0;//关闭程序
}
03模板-函数模板注意事项
最新推荐文章于 2024-07-20 22:49:13 发布