类和对象 第五部分第三小节:递增运算符重载

作用:通过重载递增运算符,实现自己的整型数据递增

代码案例

1.重载前置++运算符

cpp 复制代码
#include <iostream>
#include <string>
using namespace std;

class MyInteger {
    friend ostream& operator<<(ostream& out, const MyInteger& myint);

public:
    MyInteger() {
        m_Num = 0;
    }

    // 前置++
    MyInteger& operator++() {
        ++m_Num; // 先自增
        return *this; // 再返回
    }

private:
    int m_Num;
};

// 重载输出运算符
ostream& operator<<(ostream& out, const MyInteger& myint) {
    out << myint.m_Num;
    return out;
}

void test01() {
    MyInteger myInt;
    cout << ++myInt << endl;
}

int main() {
    test01();
    system("pause");
    return 0;
}

效果图:

注意,这边调用递增运算符要用引用的方式,保证递增始终在一个数据上而非其它变量,否则会出现结果不一致的情况,例如:

正确形式:

错误案例:

2.重载后置++运算符

后置递增使用值的原因:temp值为局部变量,使用完便被释放掉,而引用不能返回局部变量

相关推荐
浮沉9871 小时前
二分查找算法概述&通用模板
算法
Keven_112 小时前
算法札记:SPFA判负环算法的证明
算法
什巳2 小时前
JAVA练习278- 和为 K 的子数组
java·学习·算法·leetcode
喜欢的名字被抢了2 小时前
Python实战:SQLAlchemy ORM与FastAPI项目集成
开发语言·python·sql·教程·fastapi
Jerry3 小时前
LeetCode 347. 前 K 个高频元素
算法
Young Doro3 小时前
SAC 算法
线性代数·算法·机器学习
罗超驿3 小时前
2.算法效率的核心密码:时间复杂度和空间复杂度详解
java·数据结构·算法
:-)4 小时前
算法-堆排序
数据结构·算法·排序算法