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

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

代码案例

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

相关推荐
Learner4 分钟前
Python数据类型(三):列表和元组
开发语言·python
leluckys7 分钟前
AI- 一种快速实现MCP服务的方法
开发语言·python
qq_4017004111 分钟前
C语言 条件编译宏
c语言·开发语言
写代码的【黑咖啡】15 分钟前
探索 Python 中的 Vaex:高效处理大规模数据的新选择
开发语言·python
无限进步_19 分钟前
【C语言&数据结构】对称二叉树:镜像世界的递归探索
c语言·开发语言·数据结构·c++·git·算法·visual studio
JavaLearnerZGQ22 分钟前
1、Java中的线程
java·开发语言·python
X***078825 分钟前
C语言在嵌入式系统开发中的应用与挑战
c++
星辞树28 分钟前
揭秘阿里 DIN:当深度学习遇上“千物千面”
算法
刘立军29 分钟前
如何选择FAISS的索引类型
人工智能·算法·架构
小芒果_0137 分钟前
整理归并排序
c++·算法·排序算法·信息学奥赛