设计一个复数类,至少有一个构造函数,能够完成复数的加、减、乘、除运算。
时间: 2023-04-28 21:06:25 浏览: 97
好的,以下是一个复数类的设计:
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);
}
Complex operator-(const Complex& c) const { // 减法运算符重载
return Complex(real - c.real, imag - c.imag);
}
Complex operator*(const Complex& c) const { // 乘法运算符重载
return Complex(real * c.real - imag * c.imag, real * c.imag + imag * c.real);
}
Complex operator/(const Complex& c) const { // 除法运算符重载
double denominator = c.real * c.real + c.imag * c.imag;
return Complex((real * c.real + imag * c.imag) / denominator, (imag * c.real - real * c.imag) / denominator);
}
};
这个复数类包含了一个构造函数和四个运算符重载函数,分别实现了复数的加、减、乘、除运算。其中,加、减、乘运算符重载比较简单,直接对实部和虚部进行相应的运算即可。而除法运算符重载需要先计算分母,然后再根据公式计算出结果。
阅读全文