定义一个复数类complex,重载运算符+*,使之能
时间: 2023-05-24 17:05:51 浏览: 218
够计算两个复数相乘。
class complex:
def __init__(self, real=0, imag=0):
self.real = real
self.imag = imag
def __mul__(self, other):
return complex(self.real * other.real - self.imag * other.imag,
self.real * other.imag + self.imag * other.real)
def __str__(self):
if self.imag >= 0:
return f"{self.real}+{self.imag}i"
else:
return f"{self.real}{self.imag}i"
a = complex(1, 2)
b = complex(3, 4)
c = a * b
print(c) # 输出:(-5+10i)
相关问题
定义一个复数类complex重载运算符+
下面是一个C++实现的复数类complex,其中重载了运算符+:
```c++
#include<iostream>
using namespace std;
class complex{
private:
double real;
double imag;
public:
complex(double r=0,double i=0):real(r),imag(i){}
complex operator+(const complex& c) const{
return complex(real+c.real,imag+c.imag);
}
void print(){
cout<<real<<"+"<<imag<<"i"<<endl;
}
};
int main(){
complex c1(1,2),c2(3,4);
complex c3=c1+c2;
c3.print();
return 0;
}
```
运行结果为:
```
4+6i
```
在上面的代码中,重载了运算符+,使用const修饰符表示这个函数不会修改调用它的对象,返回一个新的complex对象,表示两个复数相加的结果。在main函数中分别定义了两个复数c1和c2,然后使用c1+c2得到一个新的复数c3,最后输出c3的值。
定义一个复数类Complex,重载运算符+使之能够用于两个复数对象之和、复数类对象与浮点型数据之和的运算,如c1+c2,c1+i。
好的,以下是一个简单的Complex类的定义及运算符重载实现:
```c++
#include <iostream>
using namespace std;
class Complex {
private:
double real, imag;
public:
Complex(double r = 0, double i = 0) {
real = r;
imag = i;
}
Complex operator+(Complex const &obj) {
Complex res;
res.real = real + obj.real;
res.imag = imag + obj.imag;
return res;
}
Complex operator+(double const &num) {
Complex res;
res.real = real + num;
res.imag = imag;
return res;
}
friend Complex operator+(double const &num, Complex const &obj) {
Complex res;
res.real = obj.real + num;
res.imag = obj.imag;
return res;
}
void print() {
cout << real << " + i" << imag << endl;
}
};
int main() {
Complex c1(2, 3), c2(4, 5);
Complex res1 = c1 + c2;
Complex res2 = c1 + 2.5;
Complex res3 = 1.5 + c2;
res1.print();
res2.print();
res3.print();
return 0;
}
```
在这个实现中,我们先定义了一个Complex类,其中包含了实部和虚部两个私有成员变量。接着,我们重载了运算符+,实现了两个复数对象之和和一个复数对象与浮点型数据之和的运算。同时,我们使用了友元函数来重载一个浮点型数据与复数对象之和的运算符。最后,我们在main函数中分别创建了两个复数对象和一个浮点数,在运算符重载的帮助下实现了不同的加法运算。
阅读全文