1、在程序中编写三个名为add的重载函数,分别实现两整数相加、两实数相加和两复数

要详细编程过程!

//在程序中编写三个名为add的重载函数,分别实现两整数相加、两实数相加和两复数

#include <stream.h>
#include <stdio.h>
#include <math.h>

//----------------------------------------
typedef struct complex_nick_name
{
float real;
float imag;
}
COMPLEX, *ptrCOMPLEX;

//----------------------------------------
int add(int add1, int add2);
float add(float add1, float add2);
COMPLEX add(COMPLEX add1, COMPLEX add2);

void print_COMPLEX(COMPLEX data);

//----------------------------------------
int add(int add1, int add2)
{
return (add1+add2);
}
float add(float add1, float add2)
{
return (add1+add2);
}
COMPLEX add(COMPLEX add1, COMPLEX add2)
{
COMPLEX sum;
sum.real = add1.real + add2.real;
sum.imag = add1.imag + add2.imag;
return sum;
}

void print_COMPLEX(COMPLEX data)
{
cout<<data.real<<"+"<<data.imag<<"i";
}

//----------------------------------------
int main()
{
int add1_int = 5;
int add2_int = 6;
int sum_int = 0;

float add1_float = 7.6;
float add2_float = 8.5;
float sum_float = 0;

COMPLEX add1_complex = {1.1, 2.2};
COMPLEX add2_complex = {3.7, 4.2};
COMPLEX sum_complex = {0, 0};

sum_int = add(add1_int, add2_int);
sum_float = add(add1_float, add2_float);
sum_complex = add(add1_complex, add2_complex);

cout<<"sum_int = "<<sum_int<<endl;
cout<<"sum_float = "<<sum_float<<endl;
cout<<"sum_complex = ";
print_COMPLEX(sum_complex);

getchar();
return 0;
}
//----------------------------------------追问

有错调试一下!

追答

qq522161657

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-10-24
templete<typename T>
const T& add(const T& t1, const T& t2)
{
return t1 + t2;
}

一个模板就可以解决

1、在程序中编写三个名为add的重载函数,分别实现两整数相加、两...
COMPLEX add1_complex = {1.1, 2.2};COMPLEX add2_complex = {3.7, 4.2};COMPLEX sum_complex = {0, 0};sum_int = add(add1_int, add2_int);sum_float = add(add1_float, add2_float);sum_complex = add(add1_complex, add2_complex);cout<<"sum_int ...

编写程序,实现两个整数和三个整数的加法(其中add()函数设计成重载函数...
1、两个整数进行异或运算,可以获得不带进位的和,两个整数进行与运算然后左移一位,可获取其进位的值,将所得数字继续相同的步骤,直到进位的值为 0 。2、根据算法思想,编码实现算法。3、编写测试代码。4、运行测试代码,观察舒服,符合预期。5、平台提交算法,测试通过。

...重载求绝对值函数分别求整数,实数,双精度数和复数的绝对值
public:template<typename T> Complex(T r, T i){ real = r; image = i;} template<typename T> T Abs(){ return real; } private:T real;T image;};

什么是重载函数?举例说明
double add(double a, double b){ return a+b;} 该程序中,main()函数中调用相同名字add的两个函数,前边一个add()函数对应的是两个int型数求和的函数实现,而后边一个add()函数对应的是两个double型数求和的函数实现。这便是函数的重载。以上程序输出结果为:15 15.5 参数个数上不同的重载...

什么是静态多态?它与重载有何区别?
当程序被编译时,表达式ADD(i1, i2)和ADD(s1, s2)分别被替换为两个整数相加和两个字符串相加的具体表达式。整数相加体现为求和,而字符串相加则体现为连接。程序的输出结果符合直觉: 1 + 2 = 3Hello, + world! = Hello, world! 动态多态 这就是众所周知的的多态。现代面向对象语言对这个概念的定义是一致...

c语言编写一个程序分几步?
以下是一个简单的C语言程序示例,该程序可以计算两个整数的和:在这个程序中,我们首先定义了三个整型变量num1、num2和sum,用于存储用户输入的两个整数和它们的和。然后,我们使用printf函数输出提示信息,使用scanf函数从用户处读取两个整数,并将它们存储在num1和num2中。然后,我们将num1和num2相加...

...重载的题 谢谢 有一个double的数和一个复数相加 分两种情况_百度知 ...
好复杂啊 = = :没有重载函数2参数

关于C++重载运算符
函数类型 operator 运算符名称 (形参表列){ 对运算符的重载处理 } 重载为类成员函数时参数个数=原操作数个数-1 (后置++、--除外)重载为友元函数时 参数个数=原操作数个数,且至少应该有一个自定义类型的形参。将“+”、“-”运算重载为复数类的成员函数。规则:实部和虚部分别相加减。操作数...

...重载的题 谢谢 有一个double的数和一个复数相加 分两种情况_百度知 ...
Complex(double r){real=r;imag=0;}\/\/转换构造函数 friend Complex operator +(Complex &c1,Complex &c2);\/\/运算符重载 private:double real;double imag;};Complex operator +(Complex &c1,Complex &c2){ Complex temp;temp.real=c1.real +c2.real;temp.imag=c1.imag +c2.imag;return temp...

...程序(输入两个复数(格式如2+3i),输出两个复数相加的结果。)_百度知 ...
int main(){ int x1,y1, x2, y2;printf("Please input complex 1:");scanf("%d+%di", &x1, &y1);printf("Please input complex 2:");scanf("%d+%di", &x2, &y2);printf("The sum is=%d+%di\\n", x1+x2, y1+y2);return 0;} 以上程序是最简单的形式,输入时要注意只能...

相似回答