C++第四章运算符重载习题-2:成员函数复数加减乘除

#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 &);
    Complex operator -(Complex&);
    Complex operator *(Complex&);
    Complex operator /(Complex&);
    void display();
private:
    double real;
    double imag;
};

Complex Complex::operator+(Complex &c)
{
    return Complex(real+c.real,imag+c.imag);
}

Complex Complex::operator-(Complex &c)
{
    return Complex(real-c.real,imag-c.imag);
}

Complex Complex::operator*(Complex &c)
{
    return Complex(real*c.real-imag*c.imag,imag*c.real+real*c.imag);
}

Complex Complex::operator/(Complex &c)
{
    return Complex((real*c.real+imag*c.imag)/(c.real*c.real+c.imag*c.imag),(c.imag*real-real*c.imag)/(c.real*c.real+c.imag*c.imag));
}
void Complex::display()
{
    cout<<real;
    if(imag>=0) cout<<"+";
    cout<<imag<<"i"<<endl;
}


int main()
{
    Complex c1(3,4),c2(-2,-3),c3;
    c3=c1/c2;
    c3.display();
}

在做题中发现:c++中的this引用是用 this->  ;  而Java才是this. 

猜你喜欢

转载自blog.csdn.net/n20164206199/article/details/85228834