复数类的实现

#include <iostream>
using namespace std;


//5+2i
class complex
{
public:
    complex(int real = 0,int image = 0)
        :_real(real)
        ,_image(image)
    {

    }


    complex operator+(const complex& c)
    {
        complex tmp;
        tmp._real  = this->_real + c._real ;
        tmp._image  = this->_image + c._image ;
        return tmp;

    }


    complex& operator++()
    {

        this->_real = this->_real +this->_real ;
        this->_image += this->_image ;
        return *this;

    }

        complex& operator+=(const complex& c)
    {

        this->_real = this->_real +c._real ;
        this->_image += c._image  ;
        return *this;

    }

    complex operator*(const complex& c)
    {
        complex tmp;
        tmp._real = this->_real * c._real - this->_image * c._image;  
        tmp._image = this->_image * c._real + this->_real * c._image; 
        return tmp;


    }

    complex operator-(const complex& c)
    {
        complex tmp;
        tmp._real  = this->_real - c._real ;
        tmp._image  = this->_image - c._image ;
        return tmp;


    }

    complex operator/(const complex& c)
    {
        complex tmp;
        tmp._real = (this->_real * c._real + this->_image * c._image)/  (c._real * c._real +c._image * c._image);  
        tmp._image = (this->_image * c._real - this->_real * c._image)/  (c._real * c._real +c._image * c._image);
        return tmp;


    }



    void printf()
    {
        cout<<"复数:"<<this->_real <<"+"<<this->_image <<"i"<<endl;
    }

    ~complex()
    {}
private:
    int _real;
    int _image;

};
int main()
{
    complex c1(78,2);
    complex c2(2,3);
    c1.printf ();
    c2.printf ();
    complex tmp;

    cout<<"+:"<<endl;
    tmp = c1+ c2;
    tmp.printf ();

    cout<<"-:"<<endl;
    tmp = c1 - c2;
    tmp.printf ();

    cout<<"*:"<<endl;
    tmp = c1 * c2; 
    tmp.printf ();

    cout<<"/:"<<endl;
    tmp = c1 / c2; 
    tmp.printf ();

    cout<<"++:"<<endl;
    c1++;
    c1.printf ();

    cout<<"+=:"<<endl;
    c1 += c2;
    c1.printf ();
    return 0;

}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值