定义一个复数类,重载用算符“+”,“-”“*“”/",使之能用于复数的加减乘除,运算符重载函数作为complex类的成员函数
时间: 2023-11-12 18:06:53 浏览: 97
好的,这是一个关于C++的编程问题,我可以回答。以下是实现复数类的示例代码:
```c++
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 den = c.real*c.real + c.imag*c.imag;
return Complex((real*c.real + imag*c.imag) / den, (imag*c.real - real*c.imag) / den);
}
};
```
在以上代码中,我们定义了一个名为Complex的类,并声明了一个私有成员real和imag,代表实部和虚部;然后我们根据C++提供的运算符重载机制,重载了加减乘除运算符,使其支持复数的加减乘除操作。例如:
```c++
Complex z1(1.0, 2.0);
Complex z2(3.0, 4.0);
Complex z3 = z1 + z2;
Complex z4 = z1 - z2;
Complex z5 = z1 * z2;
Complex z6 = z1 / z2;
```
在以上代码中,我们定义了两个复数z1和z2,并利用重载的运算符进行了加减乘除的操作,结果存入了z3、z4、z5、z6中。
阅读全文