#include<iostream>
using namespace std;
class Complex{
private:
double r,i;
public:
Complex(double a=0,double b=0){
r=a;
i=b;}
Complex(Complex &p){
r=p.r;
i=p.i;}
// friend Complex operator -(const Complex &,const Complex &);
friend Complex & operator -=(Complex &,const Complex &);
friend Complex & operator *=(Complex &,const Complex &);
friend Complex & operator /=(Complex &,const Complex &);
friend Complex & operator ++(Complex &);
friend Complex operator ++(Complex &,int);
void show();
};
/*Complex operator -(const Complex &a,const Complex &b){
return Complex(a.r-b.r,a.i-b.i);}*/
Complex & operator -=(Complex &a,const Complex &b){
a.r-=b.r;
a.i-=b.i;
return a;}
Complex & operator *=(Complex &a,const Complex &b){
Complex t;
t.r=a.r*b.r-a.i*b.i;
t.i=a.r*b.i+a.i*b.r;
a=t;
return a;}
Complex & operator /=(Complex &a,const Complex &b){
Complex t;
t.r=(a.r*b.r+a.i*b.i)/(b.r*b.r+b.i*b.i);
t.i=(a.i*b.r-a.r*b.i)/(b.r*b.r+b.i*b.i);
a=t;
return a;}
Complex & operator ++(Complex &p){
++p.r;
++p.i;
return p;}
Complex operator ++(Complex &p,int){
return Complex(p.r++,p.i++);}
void Complex::show(){
cout<<"("<<r<<","<<i<<")"<<endl;}
int main(){
Complex a; cout<<"a:"; a.show();
Complex b(9,32); cout<<"b:"; b.show();
Complex c=b; cout<<"c:"; c.show();
// a=b-c;
cout<<"a=b-c后:"<<endl;
cout<<"a:"; a.show();
a-=b;
cout<<"a-=b后:"<<endl;
cout<<"a后:"; a.show();
a*=c;
cout<<"a*=c后:"<<endl;
cout<<"a:"; a.show();
a/=c;
cout<<"a/=c后:"<<endl;
cout<<"a:"; a.show();
++a;
cout<<"++a后:"<<endl;
cout<<"a:"; a.show();
cout<<"a++后:"<<endl;
cout<<"a:"; a++.show();
cout<<"a:"; a.show();
return 0;
}
標注了注釋的地方是有問題的,一個關于復數運算的小程式,不知道哪出了問題,求大佬指教!!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/268755.html
標籤:C++ 語言
上一篇:資料結構題目,急
