-
2019-05-28 08:10:11
完成复数类的运算符重载函数,包括:
-
基本算术运算(+、-、*、/、=)
-
自增自减运算(前置++、后置++、前置–、后置–)
-
流运算符(<< 、>>)
z=a+bi(a,b均为实数)的数称为复数,其中a称为实部,b称为虚部,i称为虚数单位。
运算法则: -
加法: (a+bi)+(c+di)=(a+c)+(b+d)i
-
减法:(a+bi)-(c+di)=(a-c)+(b-d)i
-
乘法:(a+bi)(c+di)=ac+adi+bci+bdi2 = (ac-bd)+(bc+ad)i
-
除法:(a+bi)/(c+di)=(ac+bd)/(c2+d2) +((bc-ad)/(c2+d2))i
由上面题目得知,该复数需要运用到重载函数。所以先写一个.h头文件,
如下Plural.h文件#pragma once #include <iostream> using namespace std; class Plural { public: Plural(double x = 0, double y = 0) { before = x; after = y; } //基本算术运算 friend Plural operator + (const Plural&, const Plural&); friend Plural operator - (const Plural&, const Plural&); friend Plural operator * (const Plural&, const Plural&); friend Plural operator / (const Plural&, const Plural&); Plural& operator = (const Plural&); //自增自减运算 Plural& operator ++();//前置++ Plural& operator ++(int);//后置++ Plural& operator --();//前置-- Plural& operator --(int);//后置-- //流运算符(<< 、>>) friend ostream& operator << (ostream& output, Plural&); friend istream& operator >> (istream& input, Plural&); private: double before, after; };
然后创建一个.cpp文件(要和.h文件同名)。
如下Plural.cpp文件#include "Plural.h"//获取头文件 //加 Plural operator + (const Plural& a, const Plural& b) { return Plural(a.before + b.before, a.after + b.after); } //减 Plural operator - (const Plural& a, const Plural& b) { return Plural(a.before - b.before, a.after - b.after); } //乘 Plural operator * (const Plural& a, const Plural& b) { Plural coud; //(ac - bd) + (bc + ad)i coud.before = a.before * b.before - a.after*b.after; coud.after = a.after*b.before + a.before * b.after; return coud; } //除 Plural operator /(const Plural& a, const Plural& b) { Plural coud; //(ac + bd) / (c2 + d2) + ((bc - ad) / (c2 + d2))i coud.before = ((a.before*b.before)+(a.after*b.after))/((b.before*b.before)+(b.after*b.after)); coud.after = ((a.after*b.before)-(a.before*b.after))/((b.before*b.before)+(b.after*b.after)); return coud; } //前置++ Plural& Plural:: operator++() { return Plural(++before, ++after); } //后置++ Plural& Plural:: operator++(int) { return Plural(before++, after++); } //前置-- Plural& Plural:: operator--() { return Plural(--before, --after); } //后置-- Plural& Plural::operator--(int) { return Plural(before--, after--); } Plural& Plural :: operator = (const Plural& l) { if (this!=&l) { before = l.before; after = l.after; } return *this; } //流运算符 ostream & operator<<(ostream& output, Plural& ary) { return output << "(" << ary.before << ")+(" << ary.after << "i)"; } istream & operator >> (istream& input, Plural& ary) { return input >> ary.before >> ary.after; }
最后在main.cpp文件中写入定义和操作值
main.cpp如下:#include "Plural.h" int main() { Plural a, b, c; cin >> a >> b; cout << "a = " << a << endl << "b = " << b << endl; c = a + b; cout << "运算符+:" << a << " + " << b << " = " << c << endl; c = a - b; cout << "运算符-:" << a << " - " << b << " = " << c << endl; c = a * b; cout << "运算符*:" << a << " * " << b << " = " << c << endl; c = a / b; cout << "运算符/:" << a << " / " << b << " = " << c << endl; ++a, ++b; cout << "前置++: a = " << a << ends << "b = " << b << endl; a++, b++; cout << "后置++: a = " << a << ends << "b = " << b << endl; --a, --b; cout << "前置--: a = " << a << ends << "b = " << b << endl; a--, b--; cout << "后置--: a = " << a << ends << "b = " << b << endl; }
演示效果如下:
更多相关内容 -
-
C++复数运算
2021-09-01 14:51:17C++复数运算探究 题目说明 抽象数据类型(ADT)的定义与实现: 复数a+bi,a为实部,b为虚部,请用C或C++语言定义和实现复数抽象数据类型。 要求能够输入两个实数作为实部和虚部,用于初始化(创建)一个复数,...C++复数运算探究
题目说明
抽象数据类型(ADT)的定义与实现: 复数a+bi,a为实部,b为虚部,请用C或C++语言定义和实现复数抽象数据类型。
要求能够输入两个实数作为实部和虚部,用于初始化(创建)一个复数,对任意的两个复数,能够按照复数运算规则进行加、减、乘运算,定义求复数的模,求共轭复数的算法,并实现两个复数相除,并输出对应的计算结果。Author:Lee X; Operating environment:Microsoft Visual Studio 2019
对于此次的题目,首先让我疑惑的是ADT,在计算机工作中,有些数字是比较难以表示的。例如有理数(可以 a/b 格式表示的数,且 a 和 b 都是整数)本来是不能在电脑中表示出来。不过可以合理的抽象数据类型来定义,如下。构造:使用两个整数 a 与 b 创建实体,其中 a 为分子,b 为分母。运算:加法、减法、乘法、除法、乘幕、比较、约分,转成实数(浮点数)。要完成整个规格,就要根据数据来定义所有的运算。例如,当两个有理数 a/b 和 c/d 相乘时,相乘的结果就要定义为 ( a c ) / ( b d )。还有输入、输出、先决条件、后置条件,以及对抽象数据类型的各种假定。
抽象数据类型(ADT)是纯粹理论实体,用于简化描述抽象算法,分类与评价数据结构,形式描述程序设计语言的类型系统。一个ADT可以用特定数据类型或数据结构实现,在许多程序设计语言中有许多种实现方式;或者用形式规范语言描述。ADT常实现为模块(module):模块的接口声明了对应于ADT操作的例程(procedure),有时用注释描述了约束。[来自维基百科]
看过题目后,对于C++熟悉的同学很容易能想到其中的complex库。为了日后的学习,现整理汇总如下的功能:#include <complex> //complex头文件引用 std::complex<double> c{3,4}//表示3+4i,所以得知,complex<类型> 变量名(实部,虚部) std::complex<double> c1,a;//初始化 d = real(a);// 返回复数a的实部,当然也可以写成a.real()下面不再赘述 a.real(); d = imag(a);// 返回复数a的虚部 d = abs(a);// 返回复数a的模值/幅值 d = norm(a);// 返回复数a的模值平方 d = arg(a);// 返回复数a的幅角 z = conj(a);// 返回复数a的共轭复数 c*c1,c/c1...;//符号运算
所以可见,使用complex头文件是比较方便的,但是我们也需要理解其中的意义。于是,使用C++面向对象的特性进行简易的复数运算,仅包含上述题目所要求的。(以下环境均为VS2019 enterprise版)
“Complex.h”#pragma once #ifndef COMPLEX_H #define COMPLEX_H #include <iostream> #include <cmath> using namespace std; class Complex { private: float Real, Imag; public: Complex(float r = 0, float i = 0) { Real = r; Imag = i; } //显示输出复数 void show() { cout << Real << "+" << Imag << "i"; } Complex operator +(Complex& c);//"+"运算符重载完成复数间的加法运算 Complex operator +(float s);//"+"完成实部与实数的加法运算 Complex operator -(Complex& c); Complex operator -(float s); Complex operator *(Complex& c); Complex operator *(float s); Complex operator /(Complex& c); Complex operator / (float s); Complex conj(void); float modu(void); }; #endif
对于头文件,建立Complex类模板,同时数据类型为float,私有数据为实部与虚部,在公有操作中,进行了方法(成员函数)的编写,例如show,modu等,同时使用C++特性运算符重载(自定义运算),进行加减乘除的运算。
方法实现"Complex.cpp"#include "Complex.h" Complex Complex::operator +(Complex& c) { Complex t; t.Real = Real + c.Real;//以下均省略this->Real t.Imag = Imag + c.Imag; return t; } Complex Complex::operator +(float s) { Complex t; t.Real = Real + s; t.Imag = Imag; return t; } Complex Complex::operator-(Complex& c) { Complex t; t.Real = Real - c.Real; t.Imag = Imag - c.Imag; return t; } Complex Complex::operator-(float s) { Complex t; t.Real = Real + s; t.Imag = Imag - s; return t; } Complex Complex::operator *(Complex& c) { Complex t; t.Real = Real * c.Real - Imag * c.Imag; t.Imag = Real * c.Imag + Imag * c.Real; return t; } Complex Complex::operator *(float s) { Complex t; t.Real = Real * s; t.Imag = Imag * s; return t; } Complex Complex::operator /(Complex& c) { Complex t; if (c.Real != 0 && c.Imag != 0) { t.Real = (Real * c.Real + Imag * c.Imag) / (c.Real * c.Real + c.Imag * c.Imag); //实部除积 t.Imag = (Imag * c.Real - Real * c.Imag) / (c.Real * c.Real + c.Imag * c.Imag); //虚部除积 return t; } else { cout << "分母为0,不能执行命令"; return -1; } } Complex Complex::operator /(float s) { Complex t; if (s != 0.0) { t.Real = Real / s; t.Imag = Imag / s; return t; } else { cout << "分母为0,不能执行命令"; return -1; } } Complex Complex::conj(void) { Complex t; t.Real = Real; t.Imag = -Imag; return t; } float Complex::modu(void) { return sqrt(Real * Real + Imag * Imag); }
测试文件"Main.cpp"
#include <iostream> #include "Complex.h" using namespace std; int main() { float a, b, c, d; cout << "请输入第一个复数的实部与虚部:"; cin >> a >> b; cout << "请输入第二个复数的实部与虚部:"; cin >> c >> d; Complex A(a, b), B(c, d), C, D, E, F, G, H; C = A + B, D = A - B, E = A * B, F = A / B, G = A.conj(), H = B.conj(); cout << "加法:"; A.show(); cout << "+"; B.show(); cout << "="; C.show(); cout << endl; cout << "减法:"; A.show(); cout << "-"; B.show(); cout << "="; D.show(); cout << endl; cout << "乘法:("; A.show(); cout << ")*("; B.show(); cout << ")="; E.show(); cout << endl; cout << "除法:("; A.show(); cout << ")/("; B.show(); cout << ")="; F.show(); cout << endl; cout << "共轭复数:"; A.show(); cout << ":"; G.show(); cout << " "; B.show(); cout << ":"; H.show(); cout << endl; cout << "复数的模:"; A.show(); cout << ":" << A.modu(); cout << " "; B.show(); cout << ":" << B.modu() << endl; return 0; }
以上为C++的代码书写,采取了头文件测试文件等的运用,也比较直观,同时也起到了函数功能封装的作用。以上附完整代码(Main.cpp)
#include <iostream> #include <cmath> using namespace std; class Complex{ private: float Real,Imag; public: Complex(float r=0,float i=0){ Real=r; Imag=i; } //显示输出复数 void show(){ cout<<Real<<"+"<<Imag<<"i"; } Complex operator +(Complex &c);//"+"运算符重载完成复数间的加法运算 Complex operator +(float s);//"+"完成实部与实数的加法运算 Complex operator -(Complex &c); Complex operator -(float s); Complex operator *(Complex &c); Complex operator *(float s); Complex operator /(Complex &c); Complex operator / (float s); Complex conj(void); float modu(void); }; Complex Complex::operator +(Complex &c){ Complex t; t.Real=Real+c.Real; t.Imag=Imag+c.Imag; return t; } Complex Complex::operator +(float s){ Complex t; t.Real=Real+s; t.Imag=Imag; return t; } Complex Complex::operator-(Complex &c){ Complex t; t.Real=Real-c.Real; t.Imag=Imag-c.Imag; return t; } Complex Complex::operator-(float s){ Complex t; t.Real=Real+s; t.Imag=Imag-s; return t; } Complex Complex::operator *(Complex &c){ Complex t; t.Real=Real*c.Real-Imag*c.Imag; t.Imag=Real*c.Imag+Imag*c.Real; return t; } Complex Complex::operator *(float s){ Complex t; t.Real=Real*s; t.Imag=Imag*s; return t; } Complex Complex::operator /(Complex &c){ Complex t; if(c.Real!=0&&c.Imag!=0){ t.Real=(Real*c.Real+Imag*c.Imag)/(c.Real*c.Real+c.Imag*c.Imag); //实部除积 t.Imag=(Imag*c.Real-Real*c.Imag)/(c.Real*c.Real+c.Imag*c.Imag); //虚部除积 return t; } else{ cout<<"分母为0,不能执行命令"; return -1; } } Complex Complex::operator /(float s){ Complex t; if(s!=0.0){ t.Real=Real/s; t.Imag=Imag/s; return t; } else{ cout<<"分母为0,不能执行命令"; return -1; } } Complex Complex::conj(void){ Complex t; t.Real=Real; t.Imag=-Imag; return t; } float Complex::modu(void){ return sqrt(Real*Real+Imag*Imag); } int main(){ float a,b,c,d; cout<<"请输入第一个复数的实部与虚部:"; cin>>a>>b; cout<<"请输入第二个复数的实部与虚部:"; cin>>c>>d; Complex A(a,b),B(c,d),C,D,E,F,G,H; C=A+B,D=A-B,E=A*B,F=A/B,G=A.conj(),H=B.conj(); cout<<"加法:";A.show();cout<<"+";B.show();C.show();cout<<endl; cout<<"减法:";A.show();cout<<"-";B.show();D.show();cout<<endl; cout<<"乘法:";A.show();cout<<"*";B.show();E.show();cout<<endl; cout<<"除法:";A.show();cout<<"/";B.show();F.show();cout<<endl; cout<<"共轭复数:";A.show();cout<<":";G.show();cout<<" ";B.show();cout<<":";H.show();cout<<endl; cout<<"复数的模:";A.show();cout<<":"<<A.modu();cout<<" ";B.show();cout<<":"<<B.modu()<<endl; return 0; }
-
C++ 复数运算(友元函数)
2020-04-25 14:44:37复数类的声明如下: 要求如下: 实现复数类和友元函数addCom和outCom。 参考addCom函数为复数类增加一个友元函数minusCom,用于实现两个复数的减法 在main函数中,通过友元函数,实现复数的加减法和复数的...题目描述
复数类的声明如下:
要求如下:-
实现复数类和友元函数addCom和outCom。
-
参考addCom函数为复数类增加一个友元函数minusCom,用于实现两个复数的减法
-
在main函数中,通过友元函数,实现复数的加减法和复数的输出。
输入
第1行:第1个复数的实部和虚部第2行:需进行运算的次数,注意:是连续运算。具体结果可参考样例
第3行开始,每行输入运算类型,以及参与运算的复数的实部与虚部。“+”表示复数相加,“-”表示复数相减。
输出
每行输出复数运算后的结果,复数输出格式为“(实部,虚部)”。
#include<iostream> using namespace std; class complex{ private: double real; //实部 double imag; //虚部 public: complex(){} complex(double r,double i){ real=r; imag=i; } friend complex addCom(complex& c1,complex& c2); friend complex minusCom(complex &c1,complex& c2); friend void outCom(complex c); }; complex addCom(complex &c1,complex &c2){ complex temp; temp.real=c1.real+c2.real; temp.imag=c1.imag+c2.imag; return temp; } complex minusCom(complex &c1,complex &c2){ complex temp; temp.real=c1.real-c2.real; temp.imag=c1.imag-c2.imag; return temp; } void outCom(complex c){ cout<<"("<<c.real<<","<<c.imag<<")"<<endl; } int main(){ int r,i,t; char a; cin>>r>>i; complex c1(r,i); cin>>t; while(t--){ cin>>a>>r>>i; complex c2(r,i); if(a=='+'){ c1= addCom(c1,c2); outCom(c1); } if(a=='-'){ c1=minusCom(c1,c2); outCom(c1); } } }
-
-
C++的复数运算C++的复数运算
2010-04-10 14:12:21C++的复数运算C++的复数运算C++的复数运算 -
标准C++复数运算类详解及使用例程
2016-03-17 11:38:591)标准C++复数运算库:complex ObjectName(realPart, imagePart); 2)自定义复数运算类:包括复数的实部、虚部、四则运算、模运算、共轭等。 后者可以根据需要自己定义,关于类的定义这里不再说明,具体的...在C++中复数运算可以通过两种方式来实现:
1)标准C++复数运算库:complex<typedef> ObjectName(realPart, imagePart);
2)自定义复数运算类:包括复数的实部、虚部、四则运算、模运算、共轭等。
后者可以根据需要自己定义,关于类的定义这里不再说明,具体的功能可以根据自己的需要去实现。这里介绍C++标准的复数运算类complex,网上已经有一些关于complex类的简单介绍,但大多都是比较粗略的说明,并没有提供完整而详细的介绍。这里参考了网上的一些资源,首先介绍complex类的定义,包括:对象的构造方法、算术运算、赋值运算符、指数运算、对数运算、幂运算、三角函数运算、输入输出重载等,然后给出了一个使用例程,用于对其使用方法的总结用户总结。
一、complex类简介
C++复数运算由标准C++复数运算库(complex number mathematics library)来实现。complex类定义了标准的输入输出运算、算是运算、关系运算和赋值运算,同时还包括指数运算、对数运算、幂运算、平方根、三角函数(正弦,余弦,双曲正弦,双曲余弦)等,还包括笛卡尔坐标系到极坐标系转换的函数。
二、文件包含
1、 #include <complex.h>
2、 #include <math.h>
三、构造方法
1、complex为模板类,因此在定义一个复数时需要制定变量类型,如complex<double> cm(1,1);
2、定义时实部和虚部参数可以使用变量,如:
double a = 1; double b = 1; complex<double> cm(a, b);
3、以下定义均合法:
a) complex(): complex<double> c1;// c1 = (0,0);
b) complex(double real, double<double> imag = 0.0): complex c2(1.0);// c2 = (1.0,0);
c) complex<double> c3 = 3.4; // c3 = (3.4,0);
d) complex c4 = 3.4 + complex(1.2, 3.5);
四、笛卡尔坐标系和极坐标系下有关函数
1、real();: friend double real(complex a);
2、 img();: friend double imag(complex a);
3、 abs();: friend double abs(complex a);
4、 norm();: friend double norm(complex a);
5、 arg();: friend double arg(complex a);
6、 conj();: friend complex conj(complex a);
7、 polar();: friend complex polar(double r,double t);
示例:
d = real(a);// 返回复数a的实部 d = imag(a);// 返回复数a的虚部 d = abs(a);// 返回复数a的模值/幅值 d = norm(a);// 返回复数a的模值平方 d = arg(a);// 返回复数a的幅角 z = conj(a);// 返回复数a的共轭复数 z = polar(r,t);// 复数的极坐标定义方式,r为幅值,t为幅角
五、指数、对数、幂、平方根运算函数
1、 exp(); friend complex exp(complex a);
2、 log(); friend complex log(complex a);
3、 pow(); 四种
a) friend complex pow(double a, complex b);
b) friend complex pow(complex a, int b);
c) friend complex pow(complex a, double b);
d) friend complex pow(complex a,complex b);
4、 sqrt();friend complex sqrt(complex a);
六、三角关系运算函数
1、 sin(); friend complex sin(complex a);
2、 cos(); friend complex cos(complex a);
3、 sinh(); friend complex sinh(complex a);
4、 cosh(); friend complex cosh(complex a);
七、运算符重载
运算符重载包括:+、-、*、/(包括+=、-=、*=、/=)、==、!=、<<、>>
八、使用例程
1、开发环境:Win7 (X64) / VS2010
2、创建新项目,编写代码如下:
#include <iostream> #include <complex> #include <math.h> using namespace std; void main() { // 复数类对象定义 cout << "复数类对象定义" << endl; double r = 1.0; double x = 1.0; complex<double> c1; complex<double> c2(1,1); complex<double> c3(r,x); complex<double> c4 = 2.0; complex<double> c5 = c4 + complex<double>(2,1); cout << "c1 = " << c1 << endl; cout << "c2 = " << c2 << endl; cout << "c3 = " << c3 << endl; cout << "c4 = " << c4 << endl; cout << "c5 = " << c5 << endl << endl; // 笛卡尔坐标系和极坐标系下有关函数 cout << "笛卡尔坐标系和极坐标系下有关函数" << endl; cout << "c5实部real:" << c5.real() << endl; cout << "c5虚部imag:" << c5.imag() << endl; cout << "c5模值abs:" << abs(c5) << endl; cout << "c5模值平方norm:" << norm(c5) << endl; cout << "c5幅角arg:" << arg(c5) << endl; cout << "c5共轭复数conj:" << conj(c5) << endl; complex<double> z = polar(1.0, 3.14/6); cout << "复数极坐标定义polar:" << z << endl << endl; // 运算符重载,四则运算 cout << "运算符重载,四则运算" << endl; cout << "c2 + c5 = " << c2 + c5 << endl; cout << "c2 - c5 = " << c2 - c5 << endl; cout << "c2 * c5 = " << c2 * c5 << endl; cout << "c2 / c5 = " << c2 / c5 << endl << endl; system("pause"); }
3、运行结果如图1所示:
图1
参考:
1)http://blog.chinaunix.net/uid-20559667-id-1924707.html
2)http://blog.csdn.net/qhs1573/article/details/12254205
-
C++复数运算的运算符重载
2015-07-19 09:07:22C++提供了运算符重载,极大地方便了自定义类型之间的运算, 本文就最简单的复数运算实现让初学者体会运算符重载的作用以及运算符重载的原理。 -
简单实现C++复数计算器
2020-12-31 12:42:22本文实例为大家分享了简单实现C++复数计算器的具体代码,供大家参考,具体内容如下 1.有关计算器的功能 A,实现多个复数(包括实数)的加减乘除,大小比较, B.实现十进制实数的进制转换,可以转换任意进制 2... -
C++实现复数的加减乘除运算
2014-06-05 01:16:22用C++实现复数的加减乘除运算,运用了C++中的运算符重载的知识,对于学习运算符重载和C++有很大的参考价值 -
复数运算(C++实现)
2020-02-14 13:47:03定义复数类Complex,利用运算符重载实现复数的加、减、乘、除四则运算。 -
使用c++实现复数类的运算
2021-04-15 13:39:15生成一个复数类,进行复数运算。复数形式:a+bi, a为实部, b为虚部;复数加法和减法定义为公有函数;定义一个显示函数,显示形如:a+bi的复数 头文件(Complex.h) //复数类 class Complex { private: //实部 ... -
C++的复数运算器
2013-01-15 17:48:25通过C++实现复数的四则运算,希望大家多多肯定,支持哦。 -
c++之复数类运算
2016-07-06 14:53:18那么我们大体回顾一下复数,即a+bi,那么关于它的运算法则大体有以下几种。 1.加法法则 复数的加法按照以下规定的法则进行:设z1=a+bi,z2=c+di是任意两个复数,则它们的和是 (a+bi)+(c+di)=(a+c)+(b+d)i;... -
C++复数运算 重载
2021-05-26 01:41:21近期整理下很久前写的C++程序,这里就把它放在此文中了,有些比较简单,但是很有学习价值。下面就是自己很久前实现的复数重载代码,这里没有考虑特殊情况,像除法中,分母不为零情况。#include /*#include #include#... -
用C++实现复数的四则运算
2021-11-02 01:15:29这个代码包括一个复数类和四个运算函数,一个用户界面函数和一个功能函数 细节:当复数不足两个时无法进行运算,等等…忘了 结果展示 使用页面 建立复数 复数相加 其他功能诸如此类,不作展示 代码区 由于个人... -
复数的运算c++
2021-04-21 20:45:25Problem B: 复数类 Description: class complex { double real; double imag; public: complex(double r=0,double i=0) {real=r;imag = i;} void set(double r,double i) {real=r;imag = i;} … 程序运行时首先根据... -
C++封装复数类,实现复数运算
2019-01-03 11:07:19在复数类Complex中定义了两个私有的成员变量 real 和 img 分别表示...然后是一个没有返回值对的disp()函数用来显示输出复数的值,接下来就是对四则运算的重载函数和一个赋值重载运算符的重载,用来计算该复数的... -
C++:实现复数运算
2019-01-19 20:43:03要求使用c++ class编写程序。可以创建如下class #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace ..... -
C++复数的具体实现
2022-03-19 18:07:16抽象数据类型(Abstract Data Type,ADT)指的是用户进行软件系统设计时从问题的数学模型中抽象出来的逻辑数据结构和逻辑数据结构上的运算,而不考虑计算机的具体存储结构和运算的具体实现算法。抽象数据类型中的... -
头歌实训项目【复数运算】
2022-04-09 16:33:25本关任务:设计一个复数类并实现复数的三种运算 -
用c++实现复数类的基本运算
2019-11-21 16:03:53定义一个复数类Complex,其类方法要实现如下的运算: (1)加法:a+c=(A+C,(B+D)i); (2)减法:a+c=(A-C,(B-D)i); (3)乘法:a*c=(A*C-B*D,(A*D+B*C)i); (4)数乘:x*c=(x*C,x*Di); (5)共轭:~a=(A,-Bi); (6)要求重载... -
C++复数的运算、运算符重载
2021-06-26 22:12:26类和对象是 C++ 的重要特性,它们使得 C++ 成为面向对象的编程语言,因此学习C++的类是掌握面向对象编程的一个非常好的途经。本文主要是关于运算符重载的基础案例,对运算符 + 进行重载,使其能够加上复数。 -
C++ 复数类的运算
2020-04-27 17:10:35根据以下代码段完善 ?? 处内容及程序内容,以实现规定的输出。 class Complex { public: Complex(double r=0, double i=0):real(r), imag(i){ } Complex operator+( ??...//重载双目运算符'+' ... -
C++最全复数运算符重载
2022-02-24 14:39:56C++语言程序设计中,有关运算符重载的相关...史上最全C++复数运算符重载代码如下: #include<iostream> using namespace std; class Complex { public: Complex(double x=0.0, double y=0.0); //构造函数 -
多复数混合运算_C++_多个复数混合运算_
2021-09-29 17:20:19多复数混合运算表达式在终端以字符串的形式输入,并且程序会检查输入是否符合规范,比如括号是否匹配等。通过检查后程序就会将多复数混合运算的结果打印出来。