📜  struct c 重载 (1)

📅  最后修改于: 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++代码更加灵活和方便,但是需要注意运算符的优先级和具体实现方式。