c++ 自写复数类 练习

本文展示了如何使用C++定义一个复数类`Complex`,包括构造函数、获取实部和虚部的方法,以及实现了加法、赋值、相等和不等操作符的重载。示例代码包括`Complex.h`、`Complex.cpp`和`main.cpp`,通过实例演示了复数类的使用和操作符功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//Complex.h

#ifndef ComplexH
#define ComplexH
#include <iostream>
//---------------------------------------------------------------------------
class Complex
{public:
   Complex(double r=0,double i=0)
   :re(r),im(i)
   {}
   double real() const {return re;}
   double imag() const {return im;}
   int func(const Complex &para)  const
   {return para.re+para.im;}
   Complex & operator +=(const Complex &);

  Complex & operator =(const Complex &) ;
  bool operator ==(const Complex &) ;
  bool operator !=(const Complex &) ;
private:
    double re,im;
    friend Complex & _doapl(Complex *,const Complex &r);

};
ostream &
operator <<(ostream &os,const Complex &r );
#endif


//Complex.cpp

//---------------------------------------------------------------------------
#include <iostream>
#include "Complex.h"
using namespace std;
//---------------------------------------------------------------------------
inline Complex&
_doapl(Complex *ths,const Complex & r)
{
  ths->re+=r.re;
  ths->im+=r.im;
  return *ths;
}
 Complex &
Complex::operator +=(const Complex &r)
{
    return _doapl(this,r);
}

Complex &
 Complex::operator =(const Complex &c)
{
   re=c.re;
   im=c.im;
   return *this;
}
ostream &
operator <<(ostream &os,const Complex &r )
{
return os<<"("<<r.real()<<","<<r.imag()<<")"<<endl;
}
bool  Complex::operator ==(const Complex & c)
{
      return (this->re == c.re);
}
bool  Complex::operator !=(const Complex & c)
{
      return !(this->re == c.re);
}
//main.cpp

#include <iostream>
#include "Complex.h"
using namespace std;
int main()

{   Complex c1(2.5,1.5);     Complex c2(3.2,1.7);
    cout<<c1;
    cout<<c2.func(c1)<<endl;
    c1+=c2;
    cout<<c2;
    cout<<c1;
    Complex c4(3.2,1.7);
    bool bb;
    cout<<(bb=(c2==c4))<<endl;
    bool cc;
    cout<<(cc=(c2!=c1))<<endl;
    system("pause");
    return 0;
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值