可以通过在结构体里面重载来实现吗,举个例子
时间: 2024-05-09 13:20:03 浏览: 136
利用结构体和重载函数实现利用不同字段存储并查询学生信息。
可以通过在结构体里面重载运算符来实现。举个例子:
```c++
#include <iostream>
using namespace std;
struct Vector {
double x, y;
Vector operator+(const Vector& v) const {
return {x + v.x, y + v.y};
}
Vector operator-(const Vector& v) const {
return {x - v.x, y - v.y};
}
double operator*(const Vector& v) const {
return x * v.x + y * v.y;
}
};
int main() {
Vector v1 {3.0, 4.0};
Vector v2 {1.0, 2.0};
Vector v3 = v1 + v2;
Vector v4 = v1 - v2;
double dot_product = v1 * v2;
cout << "v1 + v2 = (" << v3.x << ", " << v3.y << ")" << endl;
cout << "v1 - v2 = (" << v4.x << ", " << v4.y << ")" << endl;
cout << "v1 * v2 = " << dot_product << endl;
return 0;
}
```
在这个例子中,我们定义了一个名为 Vector 的结构体,它有两个成员变量 x 和 y,分别表示向量的 x 轴和 y 轴分量。然后我们重载了加法运算符(+)、减法运算符(-)和乘法运算符(*),使得 Vector 类型的对象可以直接进行加减乘运算。最后在 main 函数中,我们创建了两个 Vector 对象 v1 和 v2,并对它们进行了加减乘运算,然后输出了结果。
这就是一个简单的通过在结构体里面重载来实现的例子。
阅读全文