具有相同的函数名,功能相同,返回类型不同。
举例:利用重载函数进行 实数、整数、复数的相加。
#include<iostream.h>
struct complex //结构体 复数
{
double real; //实部
double imaginary; //虚部
};
int add(int m,int n) //整数相加
{return m+n;}
double add(double x,double y) //实数相加
{return x+y;}
complex add(complex c1,complex c2) //复数相加
{
complex c;
c.real=c1.real+c2.real;
c.imaginary=c1.imaginary+c2.imaginary;
return c;
}
void main()
{
int m,n;
double x,y;
complex c1,c2,c3;
int add(int m,int n);
double add(double x,double y);
complex add(complex c1,complex c2);
cout<<"Enter two interger:";
cin>>m>>n;
cout<<"interger"<<m<<'+'<<n<<'='<<add(m,n)<<endl; //调用 整数相加
cout<<"Enter two real number:";
cin>>x>>y;
cout<<"real number"<<x<<'+'<<y<<'='<<add(x,y)<<endl; //调用 实数相加
cout<<"Enter first complex number:";
cin>>c1.real>>c1.imaginary;
cout<<"Enter the second complex number:";
cin>>c2.real>>c2.imaginary;
c3=add(c1,c2); //调用 复数相加
cout<<"complex number("<<c1.real<<','<<c1.imaginary<<")+
("<<c2.real<<','<<c2.imaginary<<")=
("<<c3.real<<','<<c3.imaginary<<")\n";
}