第十二周项目2:实现复数类中的运算符重载(1)

来源:互联网 发布:js 所有input不可编辑 编辑:程序博客网 时间:2024/06/06 13:07

问题及代码:

/*Copyright (c)2016,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:main.cpp *作    者:崔青青 *完成日期:2016年5月18日 *版 本 号:v1.0 *问题描述:实现复数类中的运算符重载。*输入描述: *输出描述: */  #include <iostream>using namespace std;class Complex{public:    Complex(){real=0;image=0;}    Complex(double r,double i){real=r;image=i;}    Complex operator+(const Complex &c2);    Complex operator-(const Complex &c2);    Complex operator*(const Complex &c2);    Complex operator/(const Complex &c2);    void display();private:    double real;    double image;};Complex Complex::operator+(const Complex &c2){    Complex c;    c.real=real+c2.real;    c.image=image+c2.image;    return c;}Complex Complex::operator-(const Complex &c2){    Complex c;    c.real=real-c2.real;    c.image=image-c2.image;    return c;}Complex Complex::operator*(const Complex &c2){    Complex c;    c.real=real*c2.real;    c.image=image*c2.image;    return c;}Complex Complex::operator/(const Complex &c2){    Complex c;    c.real=real/c2.real;    c.image=image/c2.image;    return c;} void Complex::display() {     cout<<"("<<real<<" "<<image<<")"<<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();    return 0;}


运行结果:

知识点总结:

运算符冲在过程中返回的是Complex类,一开始我写的是int型,怎么做都不对,应该记住返回的是Complex类。

学习心得:

运算符重载可以提高程序效率。


0 0