欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

【C++】 复数类操作

来源:本站整理 作者:佚名 时间:2016-05-23 TAG: 我要投稿

复数的概念我们高中已经接触过,包含是实部和虚部,
For example:2i + 3J;实部和虚部值可为整型,亦可浮点型,那在此实现一下简单的复数类的操作
代码如下:
class Complex
{
public:
 
    Complex(double real,double imag)
    {
        _real = real;
        _imag = imag;
    }
 
    Complex(const Complex& c)
    {
        _real = c._real;
        _imag = c._imag;
    }
 
    ~Complex()
    {
        
    }
    
    Complex& operator=(const Complex& c)
    {
        if(&c != this)
        {
        this->_real = c._real;
        this->_imag = c._imag;
        }
        return *this;
    }
    
    Complex operator+(const Complex& c)
    {
        Complex ret(*this);// + 运算返回运算后的值
 
        ret._real += c._real;
        ret._imag += c._imag;
        
        return ret;
    }
 
    Complex& operator++() // 前置++ , 当外面需要此返回值时,需要加&
    {
        this->_real += 1;
        this->_imag += 1;
 
        return *this;
    }
 
    Complex operator++(int) // 后置++ ,当外面不需要此返回值时,无需加&
    {
        Complex tmp(*this);//后置++返回原来的值,故定义一个临时变量保存起来
 
        this->_real += 1;
        this->_imag += 1;
 
        return tmp;
    }
 
    
    Complex& operator+= (const Complex& c)
    {
        this->_real = this->_real + c._real;
        this->_imag = this->_imag + c._imag;
 
        return *this;
    }
 
    inline bool operator==(const Complex& c)
    {
        return (_real == c._real
                && _imag == c._imag);
    }
 
    inline bool operator>(const Complex& c)
    {
        return (_real > c._real
                && _imag > c._imag);
    }
 
    inline bool operator>=(const Complex& c)
    {
        
        //return (_real >= c._real
        //        && _imag >= c._imag);
 
        return (*this > c) || (*this == c);//直接使用上面实现重载符 > 和 ==
 
    }
 
    inline bool operatorconst Complex& c)
    {
        //return (_real
        //        && _imag
 
        return !(*this > c);//直接使用上面实现重载符 >
    
    }
 
    bool operatorconst Complex& c)
    {
        return !(*this > c) || (*this == c);//直接使用上面实现重载符 >=
    }
 
    inline void Display()
    {
        cout"-"

[1] [2]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载