c++运算符及其重载

在 C++ 中,运算符重载(Operator Overloading)允许我们为自定义类型定义运算符的行为。通过运算符重载,我们可以使用自定义类型的对象,就像使用内置类型一样,进行常见的运算操作。

C++ 支持重载大部分的运算符,如算术运算符(`+`、`-`、`*`、`/` 等)、比较运算符(`<`、`>`、`==`、`!=` 等)、赋值运算符(`=`)、下标运算符(`[]`)等。

其中,`operator运算符` 是要重载的运算符,可以是内置运算符或自定义的运算符。例如,`+` 代表重载加法运算符,`<<` 代表重载输出流运算符。`返回类型` 是运算符的返回类型。

通过运算符重载,我们可以为自定义类型定义相应的操作,使其支持特定的语义和行为。例如,可以重载 `+` 运算符,实现自定义类型的相加操作。

下面是一个示例,演示如何重载加法运算符 `+`:

class Vector {
public:
    int x, y;

    Vector operator+(const Vector& other) {
        Vector result;
        result.x = x + other.x;
        result.y = y + other.y;
        return result;
    }
};

int main() {
    Vector v1{2, 3};
    Vector v2{4, 5};
    Vector sum = v1 + v2;
    // 等价于 Vector sum = v1.operator+(v2);
    
    return 0;
}

在上述示例中,我们为自定义类 `Vector` 重载了加法运算符 `+`。在 `operator+` 函数中,我们定义了两个 `Vector` 对象相加的操作,并返回相加后的结果。通过重载 `+` 运算符,我们可以像操作内置类型一样,使用 `+` 运算符对 `Vector` 对象进行相加操作。

需要注意的是,运算符重载应遵循一定的规则和约定,以确保正确的语义和行为。应谨慎选择运算符重载的使用场景,以避免混淆和不必要的复杂性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值