// c++的模板是一种参数化程序设计方式,它以一种完全通用的方法来设计函数或类
// 而不必预先说明将被使用的每个对象的类型.这些模板运算对象的类型不是实际的
// 数据类型,而是一种参数化的类型(又称为类型形参).
// 一个带类型形参的类称为 类模板.
// 一个带类型形参的函数称为 函数模板.
// 模板的类型形参由调用它的实际参数的具体类型决定,由编译程序生成一段
// 真正可执行的代码,这一过程称为实例化.
// 一个函数模板经过类型实例化后,称为模板函数.
// 一个类模板经过类型实例化后,称为模板类.
#include<iostream>
using namespace std;
// 重载函数通常量基于不同的数据类型完成类似的操作.如果对每种数据类型的操作
// 都是相同的,那么用函数模板来完成这项工作就更为简洁和方便.
template<typename T>
void exchange(T &x, T &y)
{
void main()
{
// 而不必预先说明将被使用的每个对象的类型.这些模板运算对象的类型不是实际的
// 数据类型,而是一种参数化的类型(又称为类型形参).
// 一个带类型形参的类称为 类模板.
// 一个带类型形参的函数称为 函数模板.
// 模板的类型形参由调用它的实际参数的具体类型决定,由编译程序生成一段
// 真正可执行的代码,这一过程称为实例化.
// 一个函数模板经过类型实例化后,称为模板函数.
// 一个类模板经过类型实例化后,称为模板类.
#include<iostream>
using namespace std;
// 重载函数通常量基于不同的数据类型完成类似的操作.如果对每种数据类型的操作
// 都是相同的,那么用函数模板来完成这项工作就更为简洁和方便.
template<typename T>
void exchange(T &x, T &y)
{
T temp;}
temp = x;
x = y;
y = temp;
void main()
{
int i = 7, j = 8;}
exchange(i, j);
cout << "i = " << i << "\tj = " << j << endl;
double a = 3.14, b = 6.2;
exchange(a, b);
cout << "a = " << a << "\tb = " << b << endl;
char x = 'x', y = 'y';
exchange(x, y);
cout << "x = " << x << "\ty = " << y << endl;