当前位置:编程学习 > C/C++ >>

第八周项目一:用类的成员函数完成运算符的重载(任务一)

print?/*  
* 程序的版权和版本声明部分  
* Copyright (c)2013, 烟台大学计算机学院学生  
* All rightsreserved.  
* 文件名称: object.cpp  
* 作者:李蒙  
* 完成日期: 2013年04月14日  
* 版本号: 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); 
    void display(); 
 private: 
    double real; 
    double imag; 
}; 
//下面定义成员函数  
Complex Complex::operator +(Complex &c2) 

    Complex a; 
    a.real=real+c2.real; 
    a.imag=imag+c2.imag; 
    return a; 

Complex Complex::operator -(Complex &c2) 

    Complex b; 
    b.real=real-c2.real; 
    b.imag=imag-c2.imag; 
    return b; 

Complex Complex::operator *(Complex &c2) 

    Complex c; 
    c.real=real*c2.real+(-imag*c2.imag); 
    c.imag=real*c2.imag+c2.real*imag; 
    return c; 

Complex Complex::operator /(Complex &c2) 

    Complex d; 
    d.real=(real*c2.real+imag*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag); 
    d.imag=real*(-c2.imag)+c2.real*imag; 
    return d; 

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; 

/* 
* 程序的版权和版本声明部分 
* Copyright (c)2013, 烟台大学计算机学院学生 
* All rightsreserved. 
* 文件名称: object.cpp 
* 作者:李蒙 
* 完成日期: 2013年04月14日 
* 版本号: 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);
 void display();
 private:
 double real;
 double imag;
};
//下面定义成员函数
Complex Complex::operator +(Complex &c2)
{
 Complex a;
 a.real=real+c2.real;
 a.imag=imag+c2.imag;
 return a;
}
Complex Complex::operator -(Complex &c2)
{
 Complex b;
 b.real=real-c2.real;
 b.imag=imag-c2.imag;
 return b;
}
Complex Complex::operator *(Complex &c2)
{
 Complex c;
 c.real=real*c2.real+(-imag*c2.imag);
 c.imag=real*c2.imag+c2.real*imag;
 return c;
}
Complex Complex::operator /(Complex &c2)
{
 Complex d;
 d.real=(real*c2.real+imag*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag);
 d.imag=real*(-c2.imag)+c2.real*imag;
 return d;
}
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;
}

输出结果:\

补充:软件开发 , C++ ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,