c++重载运算符“==”,判断两个复数是否相等。
时间: 2023-08-16 14:09:06 浏览: 119
复数类和运算符重载 C++语言
4星 · 用户满意度95%
可以使用类来实现复数的表示和运算符重载,以下是一个示例代码:
```c++
#include <iostream>
using namespace std;
class Complex {
private:
double real; // 复数实部
double imag; // 复数虚部
public:
Complex(double r = 0, double i = 0) : real(r), imag(i) {}
// 重载运算符==
bool operator==(const Complex& c) const {
return (real == c.real) && (imag == c.imag);
}
// 重载运算符!=,可以根据==实现
bool operator!=(const Complex& c) const {
return !(*this == c);
}
// 打印复数
void print() const {
cout << "(" << real << ", " << imag << "i)" << endl;
}
};
int main() {
Complex c1(1, 2);
Complex c2(1, 2);
Complex c3(2, 3);
if (c1 == c2) {
cout << "c1 == c2" << endl;
} else {
cout << "c1 != c2" << endl;
}
if (c1 == c3) {
cout << "c1 == c3" << endl;
} else {
cout << "c1 != c3" << endl;
}
return 0;
}
```
运行结果为:
```
c1 == c2
c1 != c3
```
其中,重载运算符使用了 const 引用,以避免创建副本,提高效率。
阅读全文