第九周-项目一运算符重载
2014-04-22 14:25
375 查看
/* * 程序的版权和版本声明部分: * Copyright (c) 2013.烟台大学计算机学院 * All rights reserved. * 文件名称: 复数类中的运算符重载 * 作 者:冯冬影 * 完成日期:2014 年 4月 22日 * 版 本 号: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 Complex operator-(Complex &c);//一目运算符-,-c相当于0-c; friend istream& operator>>(istream&,Complex&);//声明友元重载运算符“>>"函数 friend ostream& operator<<(ostream&,Complex&);//声明友元重载运算符"<<"函数 private: double real; double imag; }; //下面定义成员函数 Complex Complex::operator+(Complex &c2) { Complex c; c.real=real+c2.real; c.imag=imag+c2.imag; return c; } Complex Complex::operator-(Complex &c2) { Complex c; c.real=real-c2.real; c.imag=imag-c2.imag; return c; } Complex Complex::operator*(Complex &c2) { Complex c; c.real=real*c2.real+imag*c2.imag; c.imag=imag*c2.real+c2.imag*real; return c; } Complex Complex::operator/(Complex &c2) { Complex c; c.real=(real*c2.real-imag*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag); c.imag=(imag*c2.real-real*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag); return c; } Complex operator-(Complex &c) { Complex c2; c2.real=0-c.real; c2.imag=0-c.imag; return c2; } ostream& operator<<(ostream&output,Complex &c) { output<<"("<<c.real<<","<<c.imag<<"i)"<<endl; return output; } istream& operator>>(istream&input,Complex &c) { input>>c.real>>c.imag; return input; } //下面定义用于测试的main()函数 int main() { Complex c1,c2; cout<<"请分别输入两个复数的实部和虚部:"; cin>>c1>>c2; Complex c(5,6),c3;; cout<<"c="; cout<<c; c3=-c; cout<<"c3="; cout<<c3; cout<<"c1="; cout<<c1; cout<<"c2="; cout<<c2; c3=c1+c2; cout<<"c1+c2="; cout<<c3; c3=c1-c2; cout<<"c1-c2="; cout<<c3; c3=c1*c2; cout<<"c1*c2="; cout<<c3; c3=c1/c2; cout<<"c1/c2="; cout<<c3; return 0; }
运行结果
相关文章推荐
- 第九周项目三:分数类中的运算符重载(续)
- 第九周项目一--复数类中的运算符重载(续)
- 第九周项目三--分数类中的运算符重载(续)
- 第九周(项目一)——实现复数类中的运算符重载。
- 第九周【项目1-复数类中的运算符重载】
- 第九周项目2-Time类中的运算符重载(续)
- 第九周项目二-Time类中的运算符重载(续)
- 第九周项目3-分数类中的运算符重载(续)
- 第九周上机实践项目3-分数类中的运算符重载(续 重载输入输出流)
- 第九周 项目二-Time类中的运算符重载(续)
- 第九周项目一 复数类中的运算符重载(续)
- 第九周 【项目1-复数类中的运算符重载(续)】
- 第九周项目三——分数类中的运算符重载(续)
- 第九周项目2-Time类中的运算符重载(续)
- 第九周项目三 分数类中的运算符重载(续)
- 第九周项目3-分数类中的运算符重载(续)
- 第九周项目3:分数类中的运算符重载(续)
- 第九周 项目二 Time类中的运算符重载(续)
- 第九周 项目二:Time类中的运算符重载(续)
- 第九周项目二--Time类中的运算符重载(续)