结构体重载运算符 C++
时间: 2024-04-30 22:16:31 浏览: 112
在C++中,结构体可以通过重载运算符来实现自定义的操作。重载运算符允许我们对结构体对象进行类似于内置类型的操作,比如加法、减法、比较等。
要重载一个运算符,需要在结构体内部定义一个成员函数或者一个非成员函数,并使用特定的语法来表示要重载的运算符。下面是一个示例:
```cpp
#include <iostream>
struct Point {
int x;
int y;
// 重载加法运算符
Point operator+(const Point& other) {
Point result;
result.x = this->x + other.x;
result.y = this->y + other.y;
return result;
}
};
int main() {
Point p1 = {1, 2};
Point p2 = {3, 4};
Point sum = p1 + p2; // 使用重载的加法运算符
std::cout << "Sum: (" << sum.x << ", " << sum.y << ")" << std::endl;
return 0;
}
```
在上面的示例中,我们定义了一个名为`Point`的结构体,并重载了加法运算符`+`。重载函数`operator+`接受一个`const Point&`类型的参数,表示要与当前对象相加的另一个点。在函数内部,我们创建了一个新的`Point`对象,并将两个点的坐标相加赋值给新对象的坐标。最后,我们返回这个新对象作为加法运算的结果。
通过重载运算符,我们可以像使用内置类型一样使用自定义的结构体类型。在上面的示例中,我们可以直接使用`+`运算符对两个`Point`对象进行相加操作。
阅读全文