将运算符重载为complex类的友元函数的代码
时间: 2024-03-09 19:50:35 浏览: 64
下面是将运算符重载为complex类的友元函数的代码:
```cpp
class complex {
public:
complex(double r = 0.0, double i = 0.0) : re(r), im(i) {}
friend complex operator+(const complex& a, const complex& b);
friend complex operator-(const complex& a, const complex& b);
friend complex operator*(const complex& a, const complex& b);
friend complex operator/(const complex& a, const complex& b);
private:
double re, im;
};
complex operator+(const complex& a, const complex& b)
{
return complex(a.re + b.re, a.im + b.im);
}
complex operator-(const complex& a, const complex& b)
{
return complex(a.re - b.re, a.im - b.im);
}
complex operator*(const complex& a, const complex& b)
{
return complex(a.re * b.re - a.im * b.im, a.re * b.im + a.im * b.re);
}
complex operator/(const complex& a, const complex& b)
{
double r = b.re * b.re + b.im * b.im;
return complex((a.re * b.re + a.im * b.im) / r, (a.im * b.re - a.re * b.im) / r);
}
```
在这个示例中,我们定义了一个名为`complex`的类,该类表示一个复数。为了实现运算符重载,我们将运算符定义为该类的友元函数。在这个示例中,我们重载了四个基本运算符:加、减、乘和除。每个运算符都接受两个`complex`对象,然后返回一个新的`complex`对象,表示两个对象的运算结果。请注意,我们使用`friend`关键字来声明这些函数是友元函数,以便它们可以访问`complex`类的私有成员。
阅读全文