教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 初中教育 >

运算符重载complex类

来源:网络收集 时间:2026-08-05
导读: C++ 利用运算符重载,重载 + - * /完成复数的运算 运算符重载 C++ 编写一个复数类Complex,利用运算符重载,重载+,-,*,/,运算符完成复数的运算。 复数运算规则: 加法法则 复数的加法法则:设z1=a+bi,z2=c+di是任意两个复数。两者和的实部是原来两个复数

C++ 利用运算符重载,重载 + - * /完成复数的运算

运算符重载 C++

编写一个复数类Complex,利用运算符重载,重载+,-,*,/,运算符完成复数的运算。

复数运算规则:

加法法则

复数的加法法则:设z1=a+bi,z2=c+di是任意两个复数。两者和的实部是原来两个复数实部的和,它的虚部是原来两个虚部的和。两个复数的和依然是复数。

即 (a+bi)±(c+di)=(a±c)+(b±d)i.

乘法法则

复数的乘法法则:把两个复数相乘,类似两个多项式相乘,结果中i^2 = ㄢ,把实部与虚部分别合并。两个复数的积仍然是一个复数。

即(a+bi)(c+di)=(ac-bd)+(bc+ad)i.

除法法则

复数除法定义:满足(c+di)(x+yi)=(a+bi)的复数x+yi(x,y∈R)叫复数a+bi除以复数c+di的商

运算方法:将分子和分母同时乘以分母的共轭复数,再用乘法法则运算,

即 (a+bi)/(c+di)

=[(a+bi)(c-di)]/[(c+di)(c-di)]

=[(ac+bd)+(bc-ad)i]/(c^2+d^2).

C++程序

#include<iostream.h>

class Complex

{

private:

C++ 利用运算符重载,重载 + - * /完成复数的运算

double b;

public:

};

Complex::Complex(double x,double y) {

a=x;

b=y;

}

Complex::Complex(Complex & s) { Complex() {} Complex(double x,double y); Complex(Complex & s); void seta(double x); void setb(double y); double geta(); double getb(); Complex operator +(Complex s); Complex operator -(Complex s); Complex operator *(Complex s); Complex operator /(Complex s); void show();

C++ 利用运算符重载,重载 + - * /完成复数的运算

} b=s.getb();

void Complex::seta(double x)

{

}

void Complex::setb(double y)

{

}

double Complex::geta()

{

}

double Complex::getb()

{

}

Complex Complex::operator +(Complex s) {

Complex c; c.seta(a+s.geta()); c.setb(b+s.getb()); return b; return a; b=y; a=x;

C++ 利用运算符重载,重载 + - * /完成复数的运算

} Complex Complex::operator -(Complex s) {

}

Complex Complex::operator *(Complex s) {

Complex c;

c.seta(a*s.geta()-b*s.getb()); c.setb(b*s.geta()+a*s.getb()); return c;

}

Complex Complex::operator /(Complex s) {

}

void Complex::show() Complex c; c.seta( (a*s.geta()+b*s.getb())/(s.geta()*s.geta()+s.getb()*s.getb()) ); c.setb( (b*s.geta()-a*s.getb())/(s.geta()*s.geta()+s.getb()*s.getb()) ); return c; Complex c; c.seta(a-s.geta()); c.setb(b-s.getb()); return c;

C++ 利用运算符重载,重载 + - * /完成复数的运算

}

int main() if(b>0) { } if(b==0) { } if(b<0) { } if(a==0) else cout<<a<<b<<"j"<<endl; cout<<b<<"j"<<endl; if(a==0) cout<<endl; if(a==0) else cout<<a<<"+"<<b<<"j"<<endl; cout<<b<<"j"<<endl; else cout<<a<<endl;

C++ 利用运算符重载,重载 + - * /完成复数的运算

} Complex a(2,3); Complex b(3,4); Complex c; c=a+b; c.show(); c=a-b; c.show(); c=a*b; c.show(); c=a/b; c.show(); return 0;

…… 此处隐藏:152字,全部文档内容请下载后查看。喜欢就下载吧 ……
运算符重载complex类.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/1566200.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)