#include<iostream.h>
 struct complex //定义复数结构体类型
{
   int x;
   int y;
};
 template <class T>//函数模板声明 
 T add(T x,T y); 
 complex add(complex m ,complex n );//函数声明
 int main()
{
 complex m1={1,2},m2={3,4},m3;//定义两个复数
 cout<<"整数之和为："<<add(1,2)<<endl;
 cout<<"浮点数之和为："<<add(1.1f,2.2f)<<endl;
 m3=add(m1,m2);
 cout<<"复数之和为："<<m3.x<<"+"<<m3.y<<"i"<<endl;  
 return(0);
}
 template <class T>//函数模板 
 T add(T x,T y)//求两数之和
{
 T z;
 z=x+y;
 return(z);
}
 complex add(complex m ,complex n )
{
 complex c;
 c.x=m.x+n.x;
 c.y=m.y+n.y; 
 return(c);
}
