第九周C++上机报告(定义Complex类中的<<和>>运算符的重载)

来源:互联网 发布:红米清除用户数据失败 编辑:程序博客网 时间:2024/05/16 09:35
/** 程序的版权和版本声明部分* Copyright (c)2012, 烟台大学计算机学院学生* All rightsreserved.* 文件名称  "<<"运算符的重载.cpp* 作者:王昕彤* 完成日期: 2013年 4  月 26  日* 版本号: v1.0* 输入描述:无* 问题描述:无* 程序输出:无*/#include <iostream>using namespace std;class Complex{public:    Complex()    {        real=0;        imag=0;    }    Complex(double r,double i)    {        real=r;        imag=i;    }    Complex operator+(Complex &c2);    Complex operator-(Complex &c2);    Complex operator*(Complex &c2);    Complex operator/(Complex &c2);    friend ostream& operator<<(ostream&,Complex&);private:    double real;    double imag;};//下面定义成员函数Complex Complex::operator+(Complex &c2){    return Complex(real+c2.real,imag+c2.imag);}Complex Complex::operator-(Complex &c2){    return Complex(real-c2.real,imag-c2.imag);}Complex Complex::operator*(Complex &c2){    return Complex(real*c2.real,imag*c2.imag);}Complex Complex::operator/(Complex &c2){    return Complex(real/c2.real,imag/c2.imag);}ostream& operator<<(ostream& output,Complex& c){    if(c.imag>0)    {        output<<c.real<<"+"<<c.imag<<"i"<<endl;    }    else if(c.imag==0)    {        output<<c.real<<endl;    }    else if(c.imag<0)    {        output<<c.real<<c.imag<<"i"<<endl;    }    return output;}//下面是测试函数int main(){    Complex c1(3,4),c2(5,-10),c3;    cout<<"c1="<<c1;    cout<<"c2="<<c2;    c3=c1+c2;    cout<<"c1+c2="<<c3;    c3=c1-c2;    cout<<"c1-c2="<<c3;    c3=c1*c2;    cout<<"c1*c2="<<c3;    c3=c1/c2;    cout<<"c1/c2="<<c3;    return 0;}


运行结果:

原创粉丝点击