友元重载运算符
时间: 2023-06-29 07:09:50 浏览: 128
类域 友元 运算符 重载
友元重载运算符是指在C++中,可以使用友元函数或友元类来重载运算符。友元函数是指可以访问类的私有成员的非成员函数,而友元类是指可以访问类的私有成员的另一个类。在重载运算符时,我们可以定义一个友元函数或友元类,使其可以访问类的私有成员,并对运算符进行重载。
例如,我们可以定义一个名为“Point”的类,用来表示二维平面上的一个点。我们可以重载加号运算符来实现两个点的坐标相加。代码如下:
```c++
#include <iostream>
using namespace std;
class Point {
private:
int x, y;
public:
Point(int x = 0, int y = 0) {
this->x = x;
this->y = y;
}
friend Point operator+(const Point& p1, const Point& p2);
void print() {
cout << "(" << x << "," << y << ")" << endl;
}
};
Point operator+(const Point& p1, const Point& p2) {
return Point(p1.x + p2.x, p1.y + p2.y);
}
int main() {
Point p1(1, 2), p2(3, 4);
Point p3 = p1 + p2;
p3.print();
return 0;
}
```
在这个例子中,我们定义了一个类Point,其中包含了x和y两个私有成员变量。我们定义了一个友元函数operator+来重载加号运算符,使其可以实现两个点的坐标相加。在主函数中,我们定义了两个Point类型的对象p1和p2,并将它们相加得到了一个新的Point对象p3,最后输出p3的坐标。
阅读全文