C++ 运算符重载

操作者是C ++的关键字,它和运算符一起使用,表示一个运算符函数,理解时应将运算符=整体上视为一个函数名。

运算符重载,就是对已有运算符进行重新定义,以适应不同的数据类型。

运算符的目的是让语法更加简洁。

不能改变本来意思。

本质是一种函数调用,函数同一的名字叫operator。

可以写成全局或成员函数。全局双目运算符左面是第一个参数,右边是第二个参数。成员双目运算符左边是this,右边是第一个参数。

除了赋值号(=),其他运算符重载都可以被派生类继承。
对于++ --来说用占位符可以区分前置和后置递增、递减。

A& operator++() {
    this->a++;
    this->b++;
    return *this;
}
A operator++(int) { // int 占位参数 可以区分前置和后置递增
// 返回是值,不是引用
    A tmp = *this;
    ++(*this);
    return tmp;
}

C++ 默认赋值函数是值复制,可能导致堆内异常。

A& operator= (A& T) {
    // 先清除,再赋值,防止堆区内存重复释放
}

() 函数对象(仿函数):定义了调用操作符() 的类对象。当用该对象调用此操作符时,其表现形式如同普通函数调用一般。因此取名叫函数对象,它是一个类,不是一个函数。它的使用很灵活,常跟stl结合。

常规建议:

  • 所有一元运算符 -- 成员函数
  • = () [] -> ->* -- 必须是成员函数
  • += -= /= *= ^= &= != %= >>= <<= -- 成员函数
  • 其他二元运算符 -- 非成员

 

09-右移运算符重载_哔哩哔哩_bilibili

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

golemon.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值