编号:52372747
类型:共享资源
大小:21.36KB
格式:DOCX
上传时间:2020-02-28
上传人:!**
认证信息
个人认证
石**(实名认证)
江苏
IP属地:江苏
30
积分
- 关 键 词:
-
C++
中的
复数
- 资源描述:
-
C++中的复数类
//类的定义(mycomplex.h)
#include
#ifndef mycomplex_h
#define mycomplex_h
class complex
{
private:
float real;
float image;
public:
complex(float=0.0,float=0.0); //构造函数
complex(const complex &c); //拷贝构造函数
//以下为运算函数
complex add(const complex &c) const; //加运算
complex sub(const complex &c) const; //减运算
complex mul(const complex &c) const; //乘运算
complex div(const complex &c) const; //除运算
//以下为普通成员函数
float getreal(void) const; //获取实部
float getimage(void) const; //获取虚部
void setcomplex(float r,float i); //重新设定复数值
//以下为输出输入函数重载
friend ostream& operator<<(ostream& out,const complex& c); //输出重载
friend istream& operator>>(istream& in,complex& c); //输入重载
//以下为运算符重载
friend complex operator+(float r,const complex& c); //
friend complex operator+(int r,const complex& c);
friend complex operator-(float r,const complex& c);
friend complex operator-(int r,const complex& c);
friend complex operator*(float r,const complex& c);
friend complex operator*(int r,const complex& c);
friend complex operator+(const complex& c,float r);
friend complex operator+(const complex& c,int r);
friend complex operator-(const complex& c,float r);
friend complex operator-(const complex& c,int r);
friend complex operator*(const complex& c,float r);
friend complex operator*(const complex& c,int r);
friend complex operator/(float r,const complex& c);
friend complex operator/(int r,const complex& c);
friend complex operator/(const complex& c,float r);
friend complex operator/(const complex& c,int r);
friend complex operator+(const complex& c1,const complex& c2);
friend complex operator-(const complex& c1,const complex& c2);
friend complex operator*(const complex& c1,const complex& c2);
friend complex operator/(const complex& c1,const complex& c2);
};
//定义虚数单位ie
const complex ie(0,1);
#endif
//类的实现(mycomplex.cpp)
#include
#include "mycomplex.h"
//构造函数
complex::complex(float r,float i)
{
real=r;
image=i;
}
//拷贝构造函数
complex::complex(const complex &c)
{
real=c.real;
image=c.image;
}
//加运算
complex complex::add(const complex &c) const
{
complex t;
t.real=real+c.real;
t.image=image+c.image;
return t;
}
//减运算
complex complex::sub(const complex &c) const
{
complex t;
t.real=real-c.real;
t.image=image-c.image;
return t;
}
//乘运算
complex complex::mul(const complex &c) const
{
complex t;
t.real=real*c.real-image*c.image;
t.image=image*c.real+real*c.image;
return t;
}
//除运算
complex complex::div(const complex &c) const
{
if(!(c.real||c.image))
{
cout<<"分母不能为零"<0)
out<>(istream& in,complex& c)
{
in>>c.real>>c.image;
return in;
}
//以下为运算符重载
complex operator+(float r,const complex& c)
{
complex t;
t.real=r+c.real;
t.image=c.image;
return t;
}
complex operator+(int r,const complex& c)
{
complex t;
t.real=r+c.real;
t.image=c.image;
return t;
}
complex operator-(float r,const complex& c)
{
complex t;
t.real=r-c.real;
t.image=c.image;
return t;
}
complex operator-(int r,const complex& c)
{
complex t;
t.real=r-c.real;
t.image=c.image;
return t;
}
complex operator*(float r,const complex& c)
{
complex t;
t.real=r*c.real;
t.image=r*c.image;
return t;
}
complex operator*(int r,const complex& c)
{
complex t;
t.real=r*c.real;
t.image=r*c.image;
return t;
}
complex operator+(const complex& c,float r)
{
complex t;
t.real=r+c.real;
t.image=c.image;
return t;
}
complex operator+(const complex& c,int r)
{
complex t;
t.real=r+c.real;
t.image=c.image;
return t;
}
complex operator-(const complex& c,float r)
{
complex t;
t.real=r-c.real;
t.image=c.image;
return t;
}
complex operator-(const complex& c,int r)
{
complex t;
t.real=r-c.real;
t.image=c.image;
return t;
}
complex operator*(const complex& c,float r)
{
complex t;
t.real=r*c.real;
t.image=r*c.image;
return t;
}
complex operator*(const complex& c,int r)
{
complex t;
t.real=r*c.real;
t.image=r*c.image;
return t;
}
complex operator/(float r,const complex& c)
{
complex t(r,0);
return t.div(c);
}
complex operator/(int r,const complex& c)
{
complex t((float)r,0);
return t.div(c);
}
complex operator/(const complex& c,float r)
{
complex t;
t.real=c.real/r;
t.image=c.image/r;
return t;
}
complex operator/(const complex& c,int r)
{
complex t;
t.real=c.real/(float)r;
t.image=c.image/(float)r;
return t;
}
complex operator+(const complex& c1,const complex& c2)
{
return c1.add(c2);
}
complex operator-(const complex& c1,const complex& c2)
{
return c1.sub(c2);
}
complex operator*(const complex& c1,const complex& c2)
{
return c1.mul(c2);
}
complex operator/(const complex& c1,const complex& c2)
{
return c1.div(c2);
}
//类的测试(test.cpp)
#include
#include "mycomplex.h"
int main()
{
//测试函数运算
complex c1,c2;
c1.setcomplex(1,2);
c2.setcomplex(2,3);
cout<<"c1+c2="<>c3;
cout<
- 内容简介:
-
-
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。