zoukankan      html  css  js  c++  java
  • sdut 4-1 复数类的运算符重载

    4-1 复数类的运算符重载

    Time Limit: 1000MS Memory limit: 65536K

    题目描写叙述

    通过本题目的练习能够掌握成员运算符重载及友元运算符重载

    要求定义一个复数类。重载加法和减法运算符以适应对复数运算的要求,重载插入运算符(<<)以方便输出一个复数的要求。

    输入

     

    要求在主函数中创建对象时初始化对象的值。

    输出

     

    输出数据共同拥有4行,分别代表ab的值和它们求和、求差后的值

    演示样例输入

    演示样例输出

    a=3.2+4.5i
    b=8.9+5.6i
    a+b=12.1+10.1i
    a-b=-5.7-1.1i

    提示

     

    来源

    #include <iostream>
    
    using namespace std;
    
    class Complex//定义Complex类
    {
    private:
        double real;
        double imag;
    
    public:
        Complex()//默觉得0
        {
            real=0;
            imag=0;
        }
        Complex(double a,double b)//赋值函数
        {
            real=a;
            imag=b;
        }
    
        Complex operator+(Complex &c);//声明重载运算符“+”
        Complex operator-(Complex &c);//声明重载运算符“-”
        friend ostream& operator <<(ostream &,Complex&);//声明运算符“<<”重载为友元函数
    };
    
    Complex Complex :: operator+(Complex &c)//定义重载运算符“+”函数
    {
        Complex d;
        d.real=real+c.real;
        d.imag=imag+c.imag;
        return d;
    }
    
    Complex Complex :: operator-(Complex &c)//定义重载运算符“-”函数
    {
        Complex d;
        d.real=real-c.real;
        d.imag=imag-c.imag;
        return d;
    }
    
    ostream &operator <<(ostream &output,Complex&c)//定义运算符“<<”重载函数
    {
        output<<c.real;
        if(c.imag>=0)output<<"+";
        output<<c.imag<<"i";
        return output;
    }
    
    int main()
    {
        Complex a(3.2,4.5),b(8.9,5.6);
        cout<<"a="<<a<<endl;
        cout<<"b="<<b<<endl;
        Complex c;
        c=a+b;//运算符+用于复数运算
        cout<<"a+b="<<c<<endl;
        c=a-b;//运算符-用于复数运算
        cout<<"a-b="<<c<<endl;
        return 0;
    }
    


  • 相关阅读:
    斐波纳契数列
    实现刮刮乐的效果
    简易版美图秀秀
    js 宏任务和微任务
    作业3 阅读
    作业2 结对子作业
    做汉堡
    练习一
    Java设计模式十八:代理模式(Proxy)
    Java设计模式二十:适配器模式(Adapter)
  • 原文地址:https://www.cnblogs.com/wzzkaifa/p/6933454.html
Copyright © 2011-2022 走看看