#include<iostream>
using namespace std;
void add( int x, int y )  //求两整数的和的函数定义
{                  //注意该定义必须放在模板tem定义之前，否则编译将会出错
    cout<<x + y;
}
template< typename T1, typename T2 >
void tem( T1 t1, T2 t2 )  //模板tem，接受两个类型参数
{
    add( 3, 9 );        //调用函数，实现两个整数相加
    cout<<endl;
    add( t1, t2 );   //调用函数，实现两个未知类型的数相加。该函数定义可以放在
    cout<<endl;   //模板tem的定义之前或之后，但必须放在tem( 2, 3.67 )之前
}
void add (int a, double b ) //求两浮点数的和的函数定义
{
    cout<<a + b;
}
int main()
{
    tem( 2, 3.67 );  //参数分别为整型和浮点型，调用模板tem
    return 0;
}
