01./* 02.* 程序的版权和版本声明部分: 03.* Copyright (c) 2011, 烟台大学计算机学院 04.* All rights reserved. 05.* 文件名称:test.cpp 06.* 作 者:刘芳 07.* 完成日期:2014 年05 月04 日 08.* 版 本 号:v1.0 09.* 对任务及求解方法的描述部分: 10.* 输入描述:无 11.* 问题描述: 12.* 程序输出: 13.* 问题分析:略 14.* 算法设计:略 15.*/
#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 c; c.real=0-real; c.imag=0-imag; return c; } istream& operator>>(istream& input,Complex& c1) { cout<<"请输入虚数的实部和虚部:"<<endl; input>>c1.real>>c1.imag; return input; } ostream& operator<<(ostream& output,Complex& c1) { if(c1.imag<0) output<<"("<<c1.real<<c1.imag<<"i)"<<endl; else if(c1.imag>0) output<<"("<<c1.real<<"+"<<c1.imag<<"i)"<<endl; else output<<"("<<c1.real<<")"<<endl; return output; } 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; 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; } 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(); cin>>c3; cout<<c3<<endl; return 0; }
运算符的重载(一目运算)
最新推荐文章于 2022-11-22 10:46:56 发布