⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 demo_1_template_function.cpp

📁 对于一个初涉VC++的人来书
💻 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 + -