如题,要求实现:
1、复数类含两个参数的构造函数,一个为实部,一个为虚部。
2、实现-加-减-乘运算符重载运算符重载功能,并实现返回值为复数类。
3、Show出结果。
例如输入
7 8
输出:
(10+12i)
(-4-4i)
(-11+52i)
#include<iostream> using namespace std; class Cmycomplex { private: double real,imag; public: Cmycomplex(double r=0,double i=0);//构造函数设默认值,或者重载构造函数 Cmycomplex operator +(Cmycomplex &);//注意,这里只需要传一个参数,运算符+重载功能上类似自定义的.add()函数 Cmycomplex operator -(Cmycomplex &); Cmycomplex operator *(Cmycomplex &); void Set(double x,double y); void Show(); }; Cmycomplex::Cmycomplex(double r,double i)//类外定义时无需再写默认值 { real=r; imag=i; } Cmycomplex Cmycomplex::operator +(Cmycomplex &z) { Cmycomplex tmp; tmp.real=real+z.real; tmp.imag=imag+z.imag; return tmp; } Cmycomplex Cmycomplex::operator -(Cmycomplex &z) { Cmycomplex tmp; tmp.real=real-z.real; tmp.imag=imag-z.imag; return tmp; } Cmycomplex Cmycomplex::operator *(Cmycomplex &z) { Cmycomplex tmp; tmp.real=real*z.real-imag*z.imag;//这里注意一下运算规则 tmp.imag=real*z.imag+z.real*imag; return tmp; } void Cmycomplex::Set(double x,double y) { real=x; imag=y; } void Cmycomplex::Show() { if(imag>0) cout << "(" << real << "+" << imag << "i" << ")" << endl; else if(imag<0) cout << "(" << real << imag << "i" << ")" << endl; else if(imag==0) cout << real << endl; }
//StudybarCommentBegin int main() { Cmycomplex z1(3,4),z2(7),z3; double x,y; cin>>x>>y; z2.Set(x,y); z3=z1+z2; cout<<"\n"; z3.Show(); z3=z1-z2; cout<<"\n"; z3.Show(); z3=z1*z2; cout<<"\n"; z3.Show(); } //StudybarCommentEnd
-END
标签:real,tmp,double,imag,运算符,operator,复数,重载,Cmycomplex From: https://www.cnblogs.com/peitongshi/p/17340696.html