用cpp编写程序定义类Point,有数据成员x,y,为其定义友元函数实现重载“+”
时间: 2024-12-08 11:15:49 浏览: 20
编写一个友元函数,求两个日期之间相差的天数;
4星 · 用户满意度95%
在C++中,你可以创建一个名为`Point`的类,并通过声明它的一个友元函数来重载加法运算符"+"。友元是一种特殊的关系,允许类的非成员函数访问类的私有和保护成员。以下是定义`Point`类及其友元函数的例子:
```cpp
#include <iostream>
// 定义Point类
class Point {
private:
double x, y;
public:
// 构造函数
Point(double x = 0, double y = 0) : x(x), y(y) {}
// 数据成员
friend std::ostream& operator<<(std::ostream& os, const Point& point); // 声明友元函数
// 其他成员函数...
};
// 友元函数实现加法运算
std::ostream& operator<<(std::ostream& os, const Point& point) {
os << "Point (" << point.x << ", " << point.y << ")";
return os;
}
// 使用重载的加法运算符
Point operator+(const Point& p1, const Point& p2) {
return Point(p1.x + p2.x, p1.y + p2.y);
}
int main() {
Point p1(3, 4);
Point p2(5, 6);
// 输出两个点的和
std::cout << "p1 + p2: " << p1 + p2 << std::endl;
return 0;
}
```
在这个例子中,`operator+`是友元函数,它接受两个`Point`对象并返回一个新的`Point`,表示这两个点的和。
阅读全文