要求:在下列程序的适当位置添加代码,使用友元函数方法实现下列运算符重载: (1) 复数 / 实数(double类型) 运算; (2) 复数 == 复数 运算; (结果:int型,1表示“true”,0表示“false”) (3) 复数 != 复数 运算。(结果:int型,1表示“true”,0表示“false”)
时间: 2024-03-25 21:39:54 浏览: 104
以下是示例代码,实现了复数类 Complex 的运算符重载:
```
#include<iostream>
using namespace std;
class Complex {
private:
double real;
double imag;
public:
Complex(double r = 0, double i = 0): real(r), imag(i) {}
void print() {
cout << "(" << real << "+" << imag << "i)" << endl;
}
friend Complex operator/(const Complex& c, double d); // 友元函数重载除法运算符
friend int operator==(const Complex& c1, const Complex& c2); // 友元函数重载等于运算符
friend int operator!=(const Complex& c1, const Complex& c2); // 友元函数重载不等于运算符
};
Complex operator/(const Complex& c, double d) {
return Complex(c.real / d, c.imag / d);
}
int operator==(const Complex& c1, const Complex& c2) {
return (c1.real == c2.real) && (c1.imag == c2.imag);
}
int operator!=(const Complex& c1, const Complex& c2) {
return !(c1 == c2);
}
int main() {
Complex c1(3, 4);
Complex c2(3, 4);
Complex c3 = c1 / 2;
c1.print();
c2.print();
c3.print();
cout << "c1==c2 ? 结果:" << (c1==c2) << endl;
cout << "c1!=c2 ? 结果:" << (c1!=c2) << endl;
return 0;
}
```
在上面的代码中,我们使用了 friend 关键字来定义了三个友元函数,分别重载了除法运算符、等于运算符和不等于运算符。这些友元函数可以直接访问 Complex 类的私有成员变量,从而实现了运算符的重载。
阅读全文