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

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

代码案例

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值为局部变量,使用完便被释放掉,而引用不能返回局部变量

相关推荐
人机与认知实验室9 分钟前
人机环境空战矩阵
人工智能·线性代数·算法·机器学习·矩阵
百度Geek说17 分钟前
5个技巧让文心快码成为你的后端开发搭子
后端·算法
上海迪士尼3521 分钟前
除自身以外数组的乘积是什么意思
数据结构·算法
数据智能老司机25 分钟前
Python 实战遗传算法——遗传算法导论
python·算法·机器学习
咩?31 分钟前
支持向量机(第二十九节课内容总结)
算法·机器学习·支持向量机
EulerBlind1 小时前
【机器学习】从KNN算法到图像风格迁移:原理与实践
人工智能·算法·机器学习
code bean1 小时前
【C#】获取不重复的编码(递增,非GUID)
开发语言·c#
阿里嘎多哈基米1 小时前
二、JVM 入门——(三)栈
java·开发语言·jvm·线程·
anscos1 小时前
设计仿真 | 从物理扫描到虚拟检具:Simufact Welding革新汽车零部件检测
人工智能·算法·汽车·软件
tianchang2 小时前
JS 排序神器 sort 的正确打开方式
前端·javascript·算法