• 复数的完整C++实现


    复数的完整C++实现

    // Author:  Keith A. Shomper
    // Date:    11/17/03
    // Purpose: To demonstrate a class
    #include <iostream>
    using std::cout;
    using std::cin;
    using std::endl;
    using std::ostream;
    using std::istream;

    class complex_number {
        public:
            complex_number(double real = 0.0double imag = 0.0):r(real),i(imag) {}
            complex_number(const complex_number& rhs):r(rhs.r),i(rhs.i){};
            complex_number operator=(const complex_number& rhs){
                if(this!=&rhs){
                    r=rhs.r;
                    i=rhs.i;
                }
                return *this;
            }
            complex_number& operator+=(const complex_number& rhs);
            complex_number& operator-=(const complex_number& rhs);
            complex_number& operator*=(const complex_number& rhs);
            complex_number& operator/=(const complex_number& rhs);

            friend complex_number operator+ (const complex_number &a, const complex_number &b);
            friend complex_number operator- (const complex_number &a, const complex_number &b);
            friend complex_number operator* (const complex_number &a, const complex_number &b);
            friend complex_number operator/ (const complex_number &a, const complex_number &b);

            friend ostream& operator<<(ostream& os, const complex_number& rhs);
        private:
            double r;
            double i;
    };
    complex_number& complex_number::operator+=(const complex_number& rhs){
        r+=rhs.r;
        i+=rhs.i;
        return *this;
    }
    complex_number& complex_number::operator-=(const complex_number& rhs){
        r-=rhs.r;
        i-=rhs.i;
        return *this;
    }
    complex_number& complex_number::operator*=(const complex_number& rhs){
        r = (r * rhs.r - i * rhs.i);
        i = (r * rhs.i + i * rhs.r);
        return *this;
    }
    complex_number& complex_number::operator/=(const complex_number& rhs){
        r = (r * rhs.r + i * rhs.i) / (rhs.r * rhs.r + rhs.i * rhs.i);
        i = (i * rhs.r - r * rhs.i) / (rhs.r * rhs.r + rhs.i * rhs.i);
        return *this;
    }

    complex_number operator+ (const complex_number &a, const complex_number &b) {
        complex_number result(a);
        result+=b;

        return result;
    }
    complex_number operator- (const complex_number &a, const complex_number &b) {
        complex_number result(a);
        result-=b;

        return result;
    }

    complex_number operator* (const complex_number &a, const complex_number &b) {
        complex_number result(a);
        result*=b;

        return result;
    }

    complex_number operator/ (const complex_number &a, const complex_number &b) {
        complex_number result(a);
        result/=b;
        return result;
    }

    ostream& operator<<(ostream& os,const complex_number& rhs){
        os<<rhs.r<<"+"<<rhs.i<<"i";
    }

    int main () {
        complex_number x(12), y, z;
        complex_number sum, difference, product, quotient;

        y = complex_number(24);

        z = complex_number(30);

        cout << "x is:  "<< x<< endl;
        cout << "y is:  "<< y<< endl;
        cout << "z is:  "<< z<< endl;

        sum        = x + y;
        difference = x - y;
        product    = x * y;
        quotient   = sum / z;
        cout << "The sum (x + y) is:  "<<sum << endl;
        cout << "The difference (x - y) is:  "<<difference<< endl;
        cout << "The product (x * y) is:  "<<product << endl;
        cout << "The quotient (sum / z) is:  "<<quotient << endl;
        complex_number a=5;
        cout<<"a="<<a<<endl;
        a+=3;
        cout<<"a="<<a<<endl;

        return 0;
    }
  • 相关阅读:
    element-ui Message组件源码分析整理笔记(八)
    element-ui Pagination组件源码分析整理笔记(七)
    element-ui Tag、Dialog组件源码分析整理笔记(五)
    element-ui Progress、Badge、Alert组件源码分析整理笔记(四)
    element-ui inputNumber、Card 、Breadcrumb组件源码分析整理笔记(三)
    element-ui switch组件源码分析整理笔记(二)
    element-ui button组件 radio组件源码分析整理笔记(一)
    vue项目中引入bootstrap
    微信获取openId
    react各种表单的写法
  • 原文地址:https://www.cnblogs.com/xkfz007/p/2653816.html
Copyright © 2020-2023  润新知