/*
*Copyright(c) 2016, 烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:main.cpp
*作 者:李德坤
*完成日期:2016年5月12日
*版本号:v1.0
*
*问题描述:定义一个定义完整的类(是可以当作独立的产品发布,成为众多项目中的“基础工程”)。
这样的类在(2)的基础上,扩展+、-、*、/运算符的功能,使之能与double型数据进行运算。
设Complex c; double d; c+d和d+c的结果为“将d视为实部为d的复数同c相加”,其他-、*、/运算符类似。
*输入描述:无
*输出描述:无
*/
#include <iostream>
using namespace std;
class Complex
{
public:
Complex()
{
real=0;
imag=0;
}
Complex(double r,double i)
{
real=r;
imag=i;
}
Complex operator+(double d);
Complex operator-(double d);
Complex operator*(double d);
Complex operator/(double d);
friend Complex operator+(const double d,const Complex &c2);
friend Complex operator-(const double d,const Complex &c2);
friend Complex operator*(const double d,const Complex &c2);
friend Complex operator/(const double d,const Complex &c2);
void display();
private:
double real;
double imag;
};
Complex Complex::operator+(double d)
{
Complex c;
c.real=this->real+d;
c.imag=this->imag;
return c;
}
Complex Complex::operator-(double d)
{
Complex c;
c.real=this->real-d;
c.imag=this->imag;
return c;
}
Complex Complex::operator*(double d)
{
Complex c;
c.real=this->real*d;
c.imag=this->imag;
return c;
}
Complex Complex::operator/(double d)
{
Complex c;
c.real=this->real/d;
c.imag=this->imag;
return c;
}
Complex operator+(const double d,const Complex &c2)
{
Complex c;
c.real=d+c2.real;
c.imag=c2.imag;
return c;
}
Complex operator-(const double d,const Complex &c2)
{
Complex c;
c.real=d-c2.real;
c.imag=c2.imag;
return c;
}
Complex operator*(const double d,const Complex &c2)
{
Complex c;
c.real=d*c2.real;
c.imag=c2.imag;
return c;
}
Complex operator/(const double d,const Complex &c2)
{
Complex c;
c.real=d/c2.real;
c.imag=c2.imag;
return c;
}
void Complex::display()
{
cout<<"("<<real<<","<<imag<<")"<<endl;
}
int main()
{
Complex c1(1,2),c2;
double d=1;
cout<<"c1=";
c1.display();
cout<<"加法"<<endl<<endl;
cout<<"c2=";
c2=c1+d;
c2.display();
cout<<"减法"<<endl<<endl;
cout<<"c2=";
c2=c1-d;
c2.display();
cout<<"乘法"<<endl<<endl;
cout<<"c2=";
c2=c1*d;
c2.display();
cout<<"除法"<<endl<<endl;
cout<<"c2=";
c2=c1/d;
c2.display();
cout<<"加法"<<endl<<endl;
cout<<"c2=";
c2=d+c1;
c2.display();
cout<<"减法"<<endl<<endl;
cout<<"c2=";
c2=d-c1;
c2.display();
cout<<"乘法"<<endl<<endl;
cout<<"c2=";
c2=d*c1;
c2.display();
cout<<"除法"<<endl<<endl;
cout<<"c2=";
c2=d/c1;
c2.display();
return 0;
}
第十二周项目 1.3 实现复数类中的运算符重载
最新推荐文章于 2024-04-23 04:33:05 发布