定义复数类型Complex,用成员函数的方法重载 运算符“=” 、“+”、 “-” 、 “*” 、“/”。
时间: 2023-10-02 11:07:53 浏览: 91
以下是复数类型Complex的定义,包含了重载的运算符:
```cpp
class Complex {
private:
double real;
double imag;
public:
Complex(double real = 0.0, double imag = 0.0) {
this->real = real;
this->imag = imag;
}
// 重载复制运算符
Complex& operator=(const Complex& c) {
this->real = c.real;
this->imag = c.imag;
return *this;
}
// 重载加法运算符
Complex operator+(const Complex& c) const {
return Complex(this->real + c.real, this->imag + c.imag);
}
// 重载减法运算符
Complex operator-(const Complex& c) const {
return Complex(this->real - c.real, this->imag - c.imag);
}
// 重载乘法运算符
Complex operator*(const Complex& c) const {
return Complex(this->real * c.real - this->imag * c.imag, this->real * c.imag + this->imag * c.real);
}
// 重载除法运算符
Complex operator/(const Complex& c) const {
double denominator = c.real * c.real + c.imag * c.imag;
return Complex((this->real * c.real + this->imag * c.imag) / denominator, (this->imag * c.real - this->real * c.imag) / denominator);
}
};
```
上述代码中,Complex类包含了两个私有成员变量real和imag,分别表示复数的实部和虚部。构造函数用于初始化实部和虚部的值,如果没有给出参数,则默认为0.0。
重载的运算符包括“=” 、“+”、“-”、“*”和“/”。重载的“=”运算符用于实现复制操作,返回值是指向Complex对象的引用。重载的“+”、“-”、“*”和“/”运算符分别实现了复数的加、减、乘、除操作,返回值均为Complex对象。注意,在重载运算符时,需要使用const关键字来保证不修改当前对象的值。
阅读全文