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

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

代码案例

1.重载前置++运算符

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/355295.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【详解】贪吃蛇游戏----下篇(完整源码)

目录 引入&#xff1a; 本片文章目的&#xff1a; 整个游戏的实现流程图如下&#xff1a; 游戏实现 GameRun PrintHelpInfo Pause NextIsFood printSnake EatFood NoFood KillByWall KillBySelf GameRun GameEnd 总代码&#xff1a; &#xff08;1&#xff09…

Nestjs 全局拦截器

一、拦截器 拦截器作用&#xff1a; 在函数执行之前、之后绑定额外的逻辑转换函数的返回结果转换从函数抛出的异常扩展基本函数的行为根据所选条件重写函数 期望接口返回一个标准的json格式&#xff0c;利用拦截器对数据做全局的格式化 {code: "200",data: [],mess…

Go map 读写性能优化 - 分片 map

基本在所有的编程语言中&#xff0c;都有 map 这种数据结构&#xff0c;Go 语言也不例外。 我们知道 Go 是一门对并发支持得比较好的语言&#xff0c;但是 map 并不支持并发读写。 比如&#xff0c;下面这种写法是错误的&#xff1a; var m make(map[int]int) var wg sync.Wa…

GIS应用水平考试一级—2009 年度第二次

全国信息化工程师——GIS应用水平考试 2009 年度第二次全国统一考试一级 试卷说明: 1、本试卷共9页,6个大题,满分150 分,150 分钟完卷。 2、考试方式为闭卷考试。 3、将第一、二、三題的答案用铅笔涂写到(NCIE-GIS)答题卡上。 4、将第四、五、六题的答案填写到主观题答题卡上…

通俗易懂理解MobileNet网络模型

温故而知新&#xff0c;可以为师矣&#xff01; 一、参考资料 详细且通俗讲解轻量级神经网络——MobileNets【V1、V2、V3】 MobileNet v1 和 MobileNet v2 二、MobileNet v1 原始论文&#xff1a;[1] MobileNet网络详解 【深度学习】轻量化CNN网络MobileNet系列详解 Mo…

ThreadLocal学习笔记

ThreadLocal类图 ThreadLocal/InheritableThreadLocal/ \TransmittableThreadLocal(阿里巴巴) TransmissibleThreadLocal(阿里巴巴)ThreadLocal 这是Thread类的局部变量&#xff0c;每个线程私有。 它主要用于解决多线程中的数据共享问题&#xff0c;保…

Dubbo框架注册中心-Zookeeper搭建

Dubbo 是阿里巴巴公司开源的高性能、轻量级的Java RPC框架&#xff0c;致力于提供高性能。 Dubbo官网 本篇开始dubbo的第一篇&#xff0c;注册中心 ZooKeeper 环境搭建。 环境前置&#xff1a;由于Zookeeper是基于Java环境&#xff0c;必须安装有JDK。查看命令 java -version。…

【Redis】Redis有哪些适合的场景

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;Redis ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 &#xff08;1&#xff09;会话缓存&#xff08;Session Cache&#xff09; &#xff08;2&#xff09;全页缓存&#xff08;FPC…

Element-Plus如何实现表单校验和表单重置

一&#xff1a;页面布局介绍&#xff1a; 这是我刚刚用基于vue3element-plus写好的一个部门管理的页面 基本的增删改查已经写好&#xff0c;下面我只提供页面的template和style的代码&#xff1a; template <template><el-card class"box-card"><…

【Javaweb程序设计】【C00165】基于SSM的高考志愿辅助填报系统(论文+PPT)

基于SSM的高考志愿辅助填报系统&#xff08;论文PPT&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于ssm的高考志愿辅助填报系统 本系统分为前台系统模块、后台管理员模块以及后台学生模块 前台系统模块&#xff1a;当游客打开系统的网址后&…

CMMI、SPCA、CSMM,三种认证的差异有哪些?

在当今的企业环境中&#xff0c;体系认证已经成为了一个重要的议题。其中&#xff0c;CMMI、SPCA和CSMM是三种广泛使用的认证&#xff0c;它们在各自领域内具有特定的目标和要求&#xff0c;今天擎标就带大家了解一下这三种认证之间的差异。 CMMI、CSMM和SPCA分别是什么 1、C…

[BUUCTF]-PWN:pwnable_hacknote解析

先看保护 32位&#xff0c;没开pie&#xff0c;got表可修改 看ida 总的来说就是alloc创建堆块&#xff0c;free释放堆块&#xff0c;show打印堆块内容 但alloc处的函数比较特别&#xff0c;他会先申请一个0x8大小的堆来存放与puts相关的指针 完整exp&#xff1a; from pwn …

Qt6入门教程 13:QPushButton

目录 一.QPushButton 1.多选 2.互斥 3.设置菜单 4.图标按钮 4.1给按钮添加图标 4.2异形按钮 二.设置Qt样式表 一.QPushButton QPushButton是与QAbstractButton最接近的完全体按钮&#xff0c;它具备QAbstractButton的所有特性&#xff0c;并且支持设置菜单。 1.多选 …

【GAMES101】Lecture 09 纹理贴图 点查询与范围查询 Mipmap

目录 纹理贴图 纹理放大-双线性插值 点采样纹理所带来的问题 Mipmap 各向异性过滤 纹理贴图 我们在之前的着色里面说过如何给物体上纹理&#xff0c;就是对于已经光栅化的屏幕点&#xff0c;就是每个像素的中心&#xff0c;去寻找对应纹理的映射位置的纹理颜色&#xff0…

代码随想录刷题笔记-Day13

1. 二叉树的层序遍历 102. 二叉树的层序遍历https://leetcode.cn/problems/binary-tree-level-order-traversal/层次遍历依靠队列的先进先出特点实现。 解题思路 层序遍历的本质就是对每一个pop出来的处理节点&#xff0c;处理后把他的左右节点放进去。 对于每一层来说&…

【JavaScript 基础入门】01 编程语言和计算机基础

编程语言和计算机基础 目录 编程语言和计算机基础1 - 编程语言1.1 编程1.2 计算机语言1.3 编程语言1.4 翻译器1.5 编程语言和标记语言区别1.6 总结 2 - 计算机基础2.1 计算机组成2.2 数据存储2.3 数据存储单位2.4 程序运行 1 - 编程语言 1.1 编程 编程&#xff1a; 就是让计算…

BGP:03 BGP路由

这是实验拓扑&#xff0c;IBGP 利用环回口建立邻居&#xff0c;IGP 协议为 OSPF&#xff0c; EBGP 通过物理接口建立邻居 基本配置&#xff1a; R1: sys sysname R1 int loop 0 ip add 1.1.1.1 24 int g0/0/0 ip add 192.168.12.1 24 qR2: sys sysname R2 int loop 0 ip ad…

SpringMvc切换Json转换工具

SpringBoot切换使用goolge的Gson作为SpringMvc的Json转换工具 <!-- gson依赖 --> <dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId> </dependency>Configuration public class JsonWebConfig {B…

【MATLAB第92期】基于MATLAB的集成聚合多输入单输出回归预测方法(LSBoost、Bag)含自动优化超参数和特征敏感性分析功能

【MATLAB第92期】基于MATLAB的集成聚合多输入单输出回归预测方法&#xff08;LSBoost、Bag&#xff09;含自动优化超参数和特征敏感性分析功能 本文展示多种非常用多输入单输出回归预测模型效果。 注&#xff1a;每次运行数据训练集测试集为随机&#xff0c;故对比不严谨&…

PR新年模板|2024龙年新春祝福PR片头模板视频素材

2024龙年新春祝福视频开场PR片头模板剪辑素材mogrt下载。 软件支持Premiere Pro 2023或更高版本&#xff1b; 在Premiere Pro&#xff08;mogrt&#xff09;中使用基本图形面板更改所有设置&#xff1b; 高清19201080分辨率&#xff1b;可以更改文字&#xff0c;调整背景颜色&a…