需要两个数据成员x和y完成c++友元函数运算符重载
时间: 2024-03-07 07:51:41 浏览: 83
C++运算符重载 成员函数与友元函数详解
5星 · 资源好评率100%
好的,您可以这样定义一个类,然后重载运算符:
```c++
class Point {
private:
int x, y;
public:
Point(int a, int b) : x(a), y(b) {}
friend Point operator+(const Point& p1, const Point& p2);
};
Point operator+(const Point& p1, const Point& p2) {
return Point(p1.x + p2.x, p1.y + p2.y);
}
```
在上面的代码中,我们定义了一个 `Point` 类,它有两个私有数据成员 `x` 和 `y`,并且我们重载了加法运算符 `+` 作为友元函数。在 `operator+` 函数中,我们访问了 `Point` 类的私有数据成员 `x` 和 `y`,并将两个 `Point` 对象的对应数据成员相加,最终返回一个新的 `Point` 对象。
使用时,您可以这样调用:
```c++
Point p1(1, 2);
Point p2(3, 4);
Point p3 = p1 + p2;
std::cout << p3.x << ", " << p3.y << std::endl; // 输出 "4, 6"
```
在上面的代码中,我们创建了两个 `Point` 对象 `p1` 和 `p2`,并使用重载的加法运算符 `+` 将它们相加,最终得到一个新的 `Point` 对象 `p3`,并输出其数据成员 `x` 和 `y` 的值。
阅读全文