复数类重载加法减法和乘法运算符
Posted cwy545
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了复数类重载加法减法和乘法运算符相关的知识,希望对你有一定的参考价值。
以下定义了一个复数类及其部分实现,现要求将类的构造函数以及运算符+、- 和 * 函数重载补充完整。
复数类定义:
在这里描述复数类定义。具体如下:
class complex {
public:
complex(float r=0,float i=0); // 构造函数
complex operator+(const complex &op2) const; //重载运算符 +
complex operator-(const complex &op2) const; //重载运算符 -
complex operator*(const complex &op2) const; //重载运算符 *
void display() const; // 按数学写法输出复数
private:
float real;
float imag;
};
裁判测试程序样例:
在这里给出复数类测试的例子。例如:
#include <iostream>
using namespace std;
class complex {
public:
complex(float r=0,float i=0); // 构造函数
complex operator+(const complex &op2) const; //重载运算符 +
complex operator-(const complex &op2) const; //重载运算符 -
complex operator*(const complex &op2) const; //重载运算符 *
void display() const; // 按数学写法输出复数
private:
float real;
float imag;
};
/* ------------------- 请在这里填写答案-------------------- */
void complex::display() const {
if(real&&imag)
if(imag1||imag-1)
cout<<real<<(imag>0?"+":"-")<<"i"<<endl;
else
cout<<real<<(imag>0?"+":"")<<imag<<"i"<<endl;
else if(real)
cout<<real<<endl;
else if (imag)
if(imag1||imag-1)
cout<<(imag>0?"":"-")<<"i"<<endl;
else
cout<<imag<<"i"<<endl;
else
cout<<0<<endl;
}
int main() {
double real,imag;
complex c,d,e;
<span class="hljs-built_in">cin</span>>>real>>imag;
<span class="hljs-function"><span class="hljs-built_in">complex</span> <span class="hljs-title">c1</span><span class="hljs-params">(real,imag)</span></span>;
<span class="hljs-built_in">cin</span>>>real>>imag;
<span class="hljs-function"><span class="hljs-built_in">complex</span> <span class="hljs-title">c2</span><span class="hljs-params">(real,imag)</span></span>;
c=c1+c2;
d=c1-c2;
e=c1*c2;
c.<span class="hljs-built_in">display</span>() ;
d.<span class="hljs-built_in">display</span>() ;
e.<span class="hljs-built_in">display</span>();
<span class="hljs-keyword">return</span> <span class="hljs-number">0</span>;
}
输入样例:
在这里给出一组输入。例如:
2 3
-4 -5
输出样例:
在这里给出相应的输出。例如:
-2-2i
6+8i
7-22i
正确代码:
complex::complex(float r,float i){
real = r;
imag = i;
}
complex complex::operator+(const complex &op2) const{
complex temp;
temp.imag = this->imag + op2.imag;
temp.real = this->real + op2.real;
return temp;
}
complex complex::operator-(const complex &op2) const{
complex temp;
temp.imag = this->imag - op2.imag;
temp.real = this->real - op2.real;
return temp;
}
complex complex::operator*(const complex &op2) const{
complex temp;
temp.imag = this->imag * op2.real+this->real*op2.imag;
temp.real = this->real * op2.real-this->imag*op2.imag;
return temp;
}
以上是关于复数类重载加法减法和乘法运算符的主要内容,如果未能解决你的问题,请参考以下文章