1、定义一个复数类,用友元函数实现对双目运算符“+”的运算符重载,使其适用于复数运算。
时间: 2024-02-15 20:05:00 浏览: 89
好的,我可以为您解答这个问题。
首先,我们需要定义一个复数类,它应该包含实部和虚部两个成员变量。如下所示:
```cpp
class Complex {
public:
Complex(double real = 0.0, double imag = 0.0) : m_real(real), m_imag(imag) {}
friend Complex operator+(const Complex& c1, const Complex& c2);
private:
double m_real; // 实部
double m_imag; // 虚部
};
```
其中,构造函数用于初始化实部和虚部,友元函数用于重载“+”运算符。
接下来,我们需要在类外实现“+”运算符的重载,代码如下:
```cpp
Complex operator+(const Complex& c1, const Complex& c2) {
return Complex(c1.m_real + c2.m_real, c1.m_imag + c2.m_imag);
}
```
这里的重载函数使用了友元函数的方式,可以直接访问类的私有成员变量。
最后,我们可以在主函数中测试一下这个复数类:
```cpp
int main() {
Complex c1(1.0, 2.0);
Complex c2(3.0, 4.0);
Complex c3 = c1 + c2;
cout << "c1 + c2 = " << c3.m_real << " + " << c3.m_imag << "i" << endl;
return 0;
}
```
输出结果为:
```
c1 + c2 = 4 + 6i
```
这个复数类的“+”运算符已经成功重载,可以用于复数的加法运算。
阅读全文