c++重载运算符==怎么写
时间: 2023-10-03 08:11:14 浏览: 127
在C++中,可以通过重载运算符`==`来实现自定义类型的相等比较操作。重载运算符`==`的一般语法如下:
```c++
bool operator==(const Type& obj) const {
// 比较操作
return <比较结果>;
}
```
其中,`Type`表示自定义类型,`obj`表示另一个同类型的对象,`const`表示该函数不会修改对象的状态,`bool`表示返回值类型,`<比较结果>`表示比较结果的布尔值。
下面是一个示例,演示了如何重载运算符`==`来比较两个自定义类型的对象:
```c++
#include <iostream>
using namespace std;
class Point {
public:
Point(int x = 0, int y = 0) : m_x(x), m_y(y) {}
int getX() const { return m_x; }
int getY() const { return m_y; }
bool operator==(const Point& obj) const {
return (m_x == obj.m_x) && (m_y == obj.m_y);
}
private:
int m_x;
int m_y;
};
int main() {
Point p1(1, 2);
Point p2(1, 2);
if (p1 == p2) {
cout << "p1 and p2 are equal" << endl;
} else {
cout << "p1 and p2 are not equal" << endl;
}
return 0;
}
```
上述代码中,`Point`类表示一个二维点,重载了运算符`==`来比较两个点是否相等。在`main`函数中,创建了两个点`p1`和`p2`,它们的坐标相同,因此它们相等,输出结果为`p1 and p2 are equal`。