编写定义类Point,有数据成员×, y,为其定义友元函数实现重载“+”。
时间: 2024-05-03 15:20:15 浏览: 117
C++运算符重载 成员函数与友元函数详解
5星 · 资源好评率100%
好的,我理解了您的要求。以下是定义类Point并实现重载“ ”的示例代码:
```cpp
#include <iostream>
using namespace std;
class Point {
friend bool operator<(const Point& p1, const Point& p2);
public:
Point(double x = 0.0, double y = 0.0): x(x), y(y) {}
void print() { cout << "(" << x << ", " << y << ")" << endl; }
private:
double x, y;
};
bool operator<(const Point& p1, const Point& p2) {
return p1.x < p2.x || (p1.x == p2.x && p1.y < p2.y);
}
int main() {
Point p1(1.0, 2.0), p2(0.5, 3.0), p3(0.5, 1.0);
if (p1 < p2) p1.print(); else p2.print();
if (p2 < p3) p2.print(); else p3.print();
if (p1 < p3) p1.print(); else p3.print();
return 0;
}
```
在这个例子中,我们定义了一个Point类,拥有两个私有数据成员x和y。为使得Point对象可以比较大小,我们定义了一个友元函数operator<,它比较两个Point对象的x和y成员变量,如果p1的x小于p2的x或者p1的x等于p2的x但p1的y小于p2的y,则认为p1小于p2。在主函数中,我们用三个Point对象测试了一下重载的“<”运算符是否可用。
阅读全文