📅  最后修改于: 2023-12-03 15:35:10.365000             🧑  作者: Mango
结构体重载是一种C++的特性,它允许程序员在结构体中使用运算符或者函数,以实现更加灵活的操作。
重载需要使用运算符函数或者普通函数。运算符函数的格式如下:
返回值类型 operator 运算符(参数列表) {
// 运算符函数体
}
而普通函数的格式跟一般函数一样:
返回值类型 函数名(参数列表) {
// 函数体
}
下面给出一个例子,结构体c中重载了运算符+和,以及普通函数print。
#include <iostream>
using namespace std;
struct c {
int r, i; // r表示实部,i表示虚部
c operator + (const c &b) const {
c res;
res.r = r + b.r;
res.i = i + b.i;
return res;
}
c operator * (const c &b) const {
c res;
res.r = r * b.r - i * b.i;
res.i = r * b.i + i * b.r;
return res;
}
};
void print(const c &a) {
cout << a.r << "+" << a.i << "i" << endl;
}
int main() {
c a, b, sum, prod;
a.r = 1;
a.i = 2;
b.r = 3;
b.i = 4;
sum = a + b;
prod = a * b;
print(sum);
print(prod);
return 0;
}
程序将输出:
4+6i
-5+10i
结构体重载可以使C++代码更加灵活和方便,但是需要注意运算符的优先级和具体实现方式。