用C++编写声明一个复数类Complex,重載透算待“+”、“”、 6大2、“p”,使之能用于复数的加、减、 乘、除。运算符重载函数
时间: 2023-08-14 16:07:38 浏览: 87
好的,下面是一个简单的Complex类的声明,包含了加、减、乘、除四种运算符的重载:
```c++
class Complex {
public:
Complex(double r = 0, double i = 0) : real(r), imag(i) {}
Complex operator+(const Complex& other) const {
return Complex(real + other.real, imag + other.imag);
}
Complex operator-(const Complex& other) const {
return Complex(real - other.real, imag - other.imag);
}
Complex operator*(const Complex& other) const {
return Complex(real * other.real - imag * other.imag, real * other.imag + imag * other.real);
}
Complex operator/(const Complex& other) const {
double denominator = other.real * other.real + other.imag * other.imag;
return Complex((real * other.real + imag * other.imag) / denominator,
(imag * other.real - real * other.imag) / denominator);
}
friend std::ostream& operator<<(std::ostream& os, const Complex& c) {
os << c.real << "+" << c.imag << "i";
return os;
}
private:
double real, imag;
};
```
这个类中,我们将实部和虚部分别存储在两个变量中,并重载了运算符+、-、*、/。其中,加、减、乘、除的重载比较直观,可以直接按照复数的定义来写。需要注意的是,除法中的分母不能为0。
此外,在类的外部,我们还重载了流输出运算符<<,以便输出复数的值。在这里,我们采用了友元函数的方式来实现。
如果需要进一步了解C++中运算符重载的知识,可以参考C++ Primer等相关书籍。
阅读全文