第八周 项目 二 有函数的重载运用一般函数进行调用私有用数据

来源:互联网 发布:刷流量的软件 编辑:程序博客网 时间:2024/05/25 16:38
<span style="font-size:18px;">/**Copyright (c)2014,烟台大学计算机与控制工程学院*All rights reserved.*dood luck*文件名称:d.cpp*作    者:张旺华*完成日期:2015年4月29日*版 本 号:v1.0**/#include <iostream>using namespace std;class Complex{public:    Complex()    {        real=0;        imag=0;    }    Complex(double r,double i)    {        real=r;        imag=i;    }    double getReal() const    {        return real;   //(1)定义公用的数据接口,可以为const成员函数    }    double getImag() const    {        return imag;    }    void setReal(double r)    {        real=r;   //(1)定义公用的数据接口    }    void setImag(double i)    {        imag=i;    }    void display();private:    double real;    double imag;};//复数相加:(a+bi)+(c+di)=(a+c)+(b+d)i.Complex operator+(const Complex &c1, const Complex &c2) //(3)将参数处理为const更符合需求{    Complex c;    c.setReal(c1.getReal()+c2.getReal());   //(2)调用公用数据接口读取和修改私有数据成员    c.setImag(c1.getImag()+c2.getImag());    return c;}//复数相减:(a+bi)-(c+di)=(a-c)+(b-d)i.Complex operator-(const Complex &c1, const Complex &c2){    Complex c;    c.setReal(c1.getReal()-c2.getReal());    c.setImag(c1.getImag()-c2.getImag());    return c;}//复数相乘:(a+bi)(c+di)=(ac-bd)+(bc+ad)i.Complex operator*(const Complex &c1, const Complex &c2){    Complex c;    c.setReal(c1.getReal()*c2.getReal()-c1.getImag()*c2.getImag());    c.setImag(c1.getImag()*c2.getReal()+c1.getReal()*c2.getImag());    return c;}//复数相除:(a+bi)/(c+di)=(ac+bd)/(c^2+d^2) +(bc-ad)/(c^2+d^2)iComplex operator/(const Complex &c1, const Complex &c2){    Complex c;    double d= (c2.getReal()*c2.getReal()+c2.getImag()*c2.getImag());    c.setReal((c1.getReal()*c2.getReal()+c1.getImag()*c2.getImag())/d);    c.setImag((c1.getImag()*c2.getReal()-c1.getReal()*c2.getImag())/d);    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();    return 0;}</span>


运行结果


这是把贺老的copy 下来的。

0 0