#include<iostream>
using namespace std;
class Complex
{
public:
//构造函数
Complex(double real=0.0,double image=0.0)
:_real(real)
,_image(image)
{}
//拷贝构造函数
Complex(const Complex& c)
{
_real=c._real;
_image=c._image;
}
//赋值运算符重载
Complex& operator=(const Complex& c)
{
if(this!=&c)
{
_real=c._real;
_image=c._image;
}
return *this;
}
//析构函数
~Complex()
{
}
public:
Complex operator+(const Complex& c)
{
Complex temp;
temp._real=_real+c._real;
temp._image=_image+c._image;
return temp;
}
Complex& operator+=(const Complex& c)
{
Complex temp(*this);
this->_real=_real+c._real;
this->_image=_image+c._image;
return *this;
}
Complex operator-(const Complex& c)
{
Complex temp;
temp._real=_real-c._real;
temp._image=_image-c._image;
return temp;
}
Complex& operator-=(const Complex& c)
{
Complex temp(*this);
this->_real=_real-c._real;
this->_image=_image-c._image;
return *this;
}
Complex& operator++()
{
this->_real++;
this->_image++;
return *this;
}
Complex& operator++(int)
{
Complex temp(*this);
this->_real++;
this->_image++;
return temp;
}
bool operator==(const Complex& c)
{
if((_real==c._real)&&(_image=c._image))
return true;
else
return false;
}
bool operator!=(const Complex& c)
{
return !(*this==c);
}
void display()
{
cout<<_real<<"+"<<_image<<"i"<<endl;
}
private:
double _real; //实部
double _image; //虚部
};
int main()
{
Complex c1(5,3);
c1.display();
Complex c2(c1);
c2.display();
c1+=c2;
c1.display();
Complex c3(4,1);
(c3-c1).display();
c1-=c3;
c1.display();
int ret1=(c1==c2);
cout<<ret<<endl;
int ret2=(c1!=c2);
cout<<ret<<endl;
return 0;
}
C++--实现简单的复数类
最新推荐文章于 2025-05-12 12:01:39 发布