第八周任务1方案2

来源:互联网 发布:商品上淘宝首页 编辑:程序博客网 时间:2024/06/05 05:42
/* (程序头部注释开始)  * 程序的版权和版本声明部分  * Copyright (c) 2011, 烟台大学计算机学院学生   * All rights reserved.  * 文件名称:    * 作    者:        王明星                  * 完成日期:     2012    年4     月    8  日  * 版 本 号:         * 对任务及求解方法的描述部分  * 输入描述:   * 问题描述:   * 程序输出:   * 程序头部的注释结束  */  #include <iostream>using namespace std;class Complex{public: Complex(){real=0;imag=0;} Complex(double r,double i){real=r;imag=i;} friend Complex operator+(Complex &c3,Complex &c2); friend Complex operator-(Complex &c3,Complex &c2); friend Complex operator*(Complex &c3,Complex &c2); friend Complex operator/(Complex &c3,Complex &c2); void display();private: double real; double imag;};//下面定义成员函数 Complex operator+(Complex &c2,Complex &c3){ Complex a; a.real=c2.real+c3.real; a.imag=c2.imag+c3.imag; return a;} Complex operator-(Complex &c2,Complex &c3){ Complex a; a.real=c3.real-c2.real; a.imag=c3.imag-c2.imag; return a;}Complex operator*(Complex &c2,Complex &c3){ Complex a; a.real=c3.real*c2.real-c3.imag*c2.imag; a.imag=c2.imag*c3.real+c2.real*c3.imag; return a;} Complex operator/(Complex &c3,Complex &c2){ Complex a; a.real=(c3.real*c2.real+c3.imag*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag); a.imag=(c3.imag*c2.real+c2.imag*c3.real)/(c2.real*c2.real+c2.imag*c2.imag); return a;}void Complex::display(){ cout<<"("<<real<<","<<imag<<"i"<<")"<<endl;}int main(){ Complex c1(3,4),c2(5,-10),c3; cout<<"c1="; c1.display(); cout<<"c2="; c2.display(); c3=c1+c2; cout<<"c1+c2="; c3.display(); c3=c1-c2; cout<<"c1-c2="; c3.display(); c3=c1*c2; cout<<"c1*c2="; c3.display(); c3=c1/c2; cout<<"c1/c2="; c3.display(); system("pause"); return 0;}

上机感言:运算符重载使得自定义的数据类型功能跟强大了,让类的对象可以直接进行运算了,呵呵呵,这样不仅直观而且方便!

原创粉丝点击