一、问题描述:
定义复数类MyComplex,主函数完成相关测试。
MyComplex类结构说明:
1、数据成员包括:私有数据成员:实部x(double)虚部y(double)。
2、成员函数包括:无参构造函数MyComplex(void),其功能是将数据成员数部和虚部的值均设为0;
有参构造函数MyComplex(double value1,double value2),其功能是将数据成员实部x的值均设为value1,虚部y的值均设为value2。
公有成员函数double getX(),其功能是返回实部x的值。
公有成员函数double getY(),其功能是返回实部y的值。
公有成员函数double Mod_Com(),其功能是计算并返回复数x+yi的模。
重载实现加法运算符+,其功能是实现俩个复数的和。
二、解题思路:
首先定义复数类,根据题目要求定义成员数据,在定义其构造函数和成员函数用sqrt()计算根植。最后,在主函数中,定义复数类的俩个对象,输出其的模以及俩个复数相加的结果。
三、代码实现:
1 #include <iostream> 2 #include<string> 3 #include<iomanip> 4 using namespace std; 5 class MyComplex 6 { 7 private: 8 double x,y; 9 public: 10 MyComplex(void){} 11 MyComplex(double value1,double value2):x(value1),y(value2){} 12 double getX(void) 13 { 14 return x; 15 } 16 double getY(void) 17 { 18 return y; 19 } 20 double Mod_Com(void) 21 { 22 return sqrt(x*x+y*y); 23 } 24 MyComplex operator+(MyComplex &m) 25 { 26 MyComplex a; 27 a.x=x+m.x; 28 a.y=y+m.y; 29 return a; 30 } 31 }; 32 int main() 33 { 34 MyComplex m1(0,0),m2(3,4),m3; 35 cout<<m1.Mod_Com()<<endl; 36 cout<<m2.Mod_Com()<<endl; 37 m3=m1+m2; 38 cout<<m3.getX()<<"+"<<m3.getY()<<"i"<<endl; 39 return 0; 40 }