9.1复数类中的运算符重载

/*
* Copyright (c) 2014, 烟台大学计算机学院
* All rights reserved.
* 作    者:王颖
* 完成日期:2014 年 4 月 14 日
* 版 本 号: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);
    Complex operator-();
    friend istream&operator>>(istream&,Complex&);
    friend ostream&operator<<(ostream&,Complex&);
    void display();
private:
    double real;
    double imag;
};
//下面定义成员函数
Complex Complex::operator+(Complex &c2)
{
    return Complex(c2.real+real,c2.imag+imag);
}
Complex Complex::operator-(Complex &c2)
{
    return Complex(c2.real-real,c2.imag-imag);
}
Complex Complex::operator*(Complex &c2)
{
    return Complex(c2.real*real,c2.imag*imag);
}
Complex Complex::operator/(Complex &c2)
{
    return Complex(c2.real/real,c2.imag/imag);
}
Complex Complex::operator-()
{
    return Complex(-real,-imag);
}
istream&operator>>(istream&input,Complex&c)
{
    input>>c.real>>c.imag;
}
ostream&operator<<(ostream&output,Complex&c)
{
    output<<"("<<c.real<<","<<c.imag<<")"<<endl;
}
//下面定义用于测试的main()函数
int main()
{
    Complex c1,c2(5,-10),c3;
    cout<<"请输入c1:"<<endl;
    cin>>c1;
    cout<<"c1=";
    cout<<c1;
    cout<<"c2=";
    cout<<c2;
    c3=c1+c2;
    cout<<"c3=c1+c2";
    cout<<c3;
    c3=c1-c2;
    cout<<"c3=c1-c2";
    cout<<c3;
    c3=c1*c2;
    cout<<"c3=c1*c2";
    cout<<c3;
    c3=c1/c2;
    cout<<"c3=c1/c2";
    cout<<c3;
    c3=-c3;
    cout<<"c3=-c3";
    cout<<c3;
    return 0;
}
9.1复数类中的运算符重载_第1张图片

你可能感兴趣的:(C++,类,Class)