📄 demo_1_template_function.cpp
字号:
//************************************************
// 模板函数:以数据类型作为函数参数
// 而定义的一系列重载函数的公共通用代码。
// 根据函数调用的实参:
// 首先进行一般函数的形参匹配调用一般函数,否则:
// 进行模板函数的形参实例化调用模板函数,否则:
// 实参进行允许的隐类型转换后形参匹配调用一般函数,否则:
// 提示语法错误。
//************************************************
#include<iostream.h>
//用class和typename是等价的,但typename是ANSI C++标准推荐使用的关键字
//用class容易与C++类产生混淆,而用typename含义清楚(是类型名而非类名)
template <typename T>
void swap(T& x, T& y)
{
T temp;
cout<<"Calling template function version: ";
cout<<x<<","<<y<<" : ";
temp=x;
x=y;
y=temp;
cout<<x<<","<<y<<endl;
return;
}
void swap(int& x, int& y)
{
int temp;
cout<<"Calling general function version: ";
cout<<x<<","<<y<<" : ";
temp=x;
x=y;
y=temp;
cout<<x<<","<<y<<endl;
return;
}
int main()
{
int i=10,j=20;
float x=10.44f,y=20.14f;
char a='A',b='B';
swap(i,j);
swap(x,y);
swap(a,b);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -