C++简单的实现复数类

来源:互联网 发布:国内域名备案 编辑:程序博客网 时间:2024/05/21 09:06
#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;elsereturn 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;}

原创粉丝点击