zl程序教程

您现在的位置是:首页 >  其它

当前栏目

第8周-任务1-方案1-复数类中运算符重载(成员函数实现)

实现 函数 方案 任务 运算符 成员 重载 类中
2023-09-11 14:15:57 时间
【题目】实现复数类中的运算符重载:定义一个复数类重载运算符+、-、*、/,使之能用于复数的加减乘除。 方案一:请用类的成员函数完成运算符的重载;class Complex public: Complex(){real=0;imag=0;} Complex(double r,double i){real=r;imag=i;} Complex operator+(Compl
【题目】实现复数类中的运算符重载:定义一个复数类重载运算符+、-、*、/,使之能用于复数的加减乘除。
方案一:请用类的成员函数完成运算符的重载;
class Complex

public:

 Complex(){real=0;imag=0;}

 Complex(double r,double i){real=r;imag=i;}

 Complex operator+(Complex c2);

 Complex operator-(Complex c2);

 Complex operator*(Complex c2);

 Complex operator/(Complex c2);

 void display();

private:

 double real;

 double imag;

//下面定义成员函数


【讲解视频】


【参考解答】

#include iostream 

using namespace std;

class Complex

public:

 Complex(){real=0;imag=0;}

 Complex(double r,double i){real=r;imag=i;}

 Complex operator+(Complex c2);

 Complex operator-(Complex c2);

 Complex operator*(Complex c2);

 Complex operator/(Complex c2);

 void display();

private:

 double real;

 double imag;

//复数相加: (a+bi)+(c+di)=(a+c)+(b+d)i. 

Complex Complex::operator+(Complex c2)

 Complex c;

 c.real=real+c2.real;

 c.imag=imag+c2.imag;

 return c;

//复数相减:(a+bi)-(c+di)=(a-c)+(b-d)i.

Complex Complex::operator-(Complex c2)

 Complex c;

 c.real=real-c2.real;

 c.imag=imag-c2.imag;

 return c;

//复数相乘:(a+bi)(c+di)=(ac-bd)+(bc+ad)i.

Complex Complex::operator*(Complex c2)

 Complex c;

 c.real=real*c2.real-imag*c2.imag;

 c.imag=imag*c2.real+real*c2.imag;

 return c;

//复数相除:(a+bi)/(c+di)=(ac+bd)/(c^2+d^2) +(bc-ad)/(c^2+d^2)i 

Complex Complex::operator/(Complex c2)

 Complex c;

 c.real=(real*c2.real+imag*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag);

 c.imag=(imag*c2.real-real*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag);

 return c;

void Complex::display()

 cout "(" real "," imag "i)" endl;

int main()

 Complex c1(3,4),c2(5,-10),c3;

 cout "c1=";

 c1.display();

 cout "c2=";

 c2.display();

 c3=c1+c2;

 cout "c1+c2=";

 c3.display();

 c3=c1-c2;

 cout "c1-c2=";

 c3.display();

 c3=c1*c2;

 cout "c1*c2=";

 c3.display();

 c3=c1/c2;

 cout "c1/c2=";

 c3.display();

 system("pause");

 return 0;




【C++基础】运算符重载 我们平时用的C++也好,还是其他语言预定义好的运算符,一般都是限定于基本数据类型,如整型变量的加法int c = a+b等,但是操作的数据类型是我们自定义的时候(如类)就不能用预定义运算符,这时就需要用到运算符重载了。
【项目-实现复数类中的运算符重载】(1)请用类的成员函数,定义复数类重载运算符+、-、*、/,使之能用于复数的加减乘除class Complex public: Complex(){real=0;imag=0;} Complex(double r,double i){real=r; imag=i;} Complex operator+
C++第9周项目1 - 实现复数类中的运算符重载 课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565,本周题目链接:http://blog.csdn.net/sxhelijian/article/details/8841620 【项目1-Complex类】接第8周项目1,定义Complex类中的 和 运算符的重载,实现输入和输出,改造原程序
C++第9周项目3 - 实现分数类中的运算符重载 课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565,本周题目链接:http://blog.csdn.net/sxhelijian/article/details/8841620 【项目3-分数类】接第8周项目3,定义分数类中 和 运算符重载,实现分数的输入输出,改造原程序中对运算结果显示方式
C++第8周项目1 - 实现复数类中的运算符重载 课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565,本周题目链接:http://blog.csdn.net/sxhelijian/article/details/8806111【项目1-实现复数类中的运算符重载】定义一个复数类重载运算符+、-、*、/,使之能用于复数的加减乘除。(1)任务一:请用类的成员函数完成运算符的重
贺利坚 烟台大学计算机学院教师,建设系列学习资源,改革教学方法,为IT菜鸟建跑道,让大一的孩子会编程,为迷茫的大学生出主意,一起追求快乐的大学。 著书《逆袭大学:传给IT学子的正能量》,帮助处于迷茫中的大学