定义复数类Complex,包含实部r(double类型)、虚部i(double类型)两个数据成员。 (1)定义含默认参数值的构造函数Complex(double real=0.0, double image=0.0),使用户能够在构造对象的同时为对象赋初值。 (2)以函数成员的方式对复数的加法“+”、减法“-”、乘法“*”三个二元运算符进行重载,以实现复数之间的加、减、乘功能。 (3)以友元函数的方式重载输出运算符“<<”,使得Complex类的对象能够显示其自身信息。
时间: 2024-02-18 22:00:16 浏览: 75
这是1.定义一个复数类 complex ,它的内部具有两个实例变量:realPart和imagPart,分别代表复数的实部和虚
5星 · 资源好评率100%
好的,下面是复数类Complex的定义和实现:
```c++
#include<iostream>
using namespace std;
class Complex {
public:
Complex(double real = 0.0, double image = 0.0); // 构造函数
Complex operator+(const Complex& c2) const; // 重载加法运算符
Complex operator-(const Complex& c2) const; // 重载减法运算符
Complex operator*(const Complex& c2) const; // 重载乘法运算符
friend ostream& operator<<(ostream& os, const Complex& c); // 重载输出运算符
private:
double r; // 实部
double i; // 虚部
};
Complex::Complex(double real, double image) : r(real), i(image){}
Complex Complex::operator+(const Complex& c2) const {
Complex c;
c.r = r + c2.r;
c.i = i + c2.i;
return c;
}
Complex Complex::operator-(const Complex& c2) const {
Complex c;
c.r = r - c2.r;
c.i = i - c2.i;
return c;
}
Complex Complex::operator*(const Complex& c2) const {
Complex c;
c.r = r * c2.r - i * c2.i;
c.i = r * c2.i + i * c2.r;
return c;
}
ostream& operator<<(ostream& os, const Complex& c) {
os << c.r << "+" << c.i << "i";
return os;
}
int main() {
Complex c1(1.0, 2.0);
Complex c2(3.0, -4.0);
Complex c3 = c1 + c2;
Complex c4 = c1 - c2;
Complex c5 = c1 * c2;
cout << c1 << " + " << c2 << " = " << c3 << endl;
cout << c1 << " - " << c2 << " = " << c4 << endl;
cout << c1 << " * " << c2 << " = " << c5 << endl;
return 0;
}
```
在上面的代码中,我们定义了一个Complex类,包含实部r和虚部i两个数据成员。通过重载加、减、乘法运算符,可以实现复数之间的加、减、乘操作。同时,我们也通过友元函数的方式重载了输出运算符,使得Complex类的对象能够输出自身的信息。在main函数中,我们创建了两个Complex对象c1和c2,并对它们进行了加、减、乘操作,并输出了结果。
阅读全文