当前位置: 首页 > article >正文

C++ 递增/递减运算符重载

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

总结: 前置递增返回引用,后置递增返回值

递增

#include<iostream>
using namespace std;

class MyInteger {
private:
	int m_Num = 0;
public:
	friend ostream& operator<<(ostream& out, MyInteger myint);
	MyInteger() {
		m_Num = 0;
	}
	//重载前置++运算符  返回引用是一直对一个数据进行递增
	MyInteger& operator++() {
		//先++
		m_Num++;
		//再返回
		return *this;
	}
	//重载后置置++运算符
	MyInteger& operator++(int) {  //int代表占位参数,可以用于区分前置和后置递增
		//先返回
		MyInteger temp = *this; 
		//记录当前本身的值,然后让本身的值+1,但是返回的是以前的值,达到先返回后++
		//再++
		m_Num++;
		return temp;
	}
};

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

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

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


int main()
{
	test01();
	test02();
	return 0;
}

递减

#include<iostream>
using namespace std;

class MyInteger {
private:
	int m_num;
public:
	MyInteger() {
		m_num = 0;
	}
	//!!!!!!! 必须用引用
	MyInteger &operator--() {
		//先++后运算
		m_num--;
		return *this;
	}
	//!!!!!!! 必须用引用
	MyInteger &operator--(int) {
		//先传值后++
		MyInteger temp = *this;
		m_num--;
		return temp;
	}
	friend ostream& operator<<(ostream& out, MyInteger myint);
};

//重载左运算符
ostream& operator<<(ostream& out, MyInteger myint) {
	out << myint.m_num;
	return out;
}

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

void test02() {
	MyInteger myInt;
	cout << myInt-- << endl;
	cout << myInt << endl;
}


int main()
{
	test01();
	test02();
	return 0;
}

http://www.kler.cn/a/132448.html

相关文章:

  • QT基础入门【QSS】继承、命名空间中的小部件、QObject 属性介绍
  • 从0开始学习JavaScript--JavaScript 循环与迭代详解
  • Git企业开发级讲解(四)
  • 使用 Stable Diffusion Img2Img 生成、放大、模糊和增强
  • Python | 机器学习之逻辑回归
  • Unity解决:在空GameObject身上生成一个Text用于显示当前帧率(Time.realtimeSinceStartup使用)
  • 【机器学习】 特征工程:特征预处理,归一化、标准化、处理缺失值
  • TCP协议相关实验
  • RIP路由信息协议
  • rk3588 usb网络共享连接
  • 深入了解Java 8 新特性:lambda表达式进阶
  • wpf devexpress添加TreeListControl到项目
  • 腾讯云轻量级服务器和云服务器什么区别?轻量服务器是干什么用的
  • js 给选中的文字添加颜色、替换文字内容...,选中状态去除后更改还在(document.execCommand)
  • 3D建模基础教程:可编辑多边形建模的基础认识
  • 2023年亚太杯数学建模思路 - 案例:异常检测
  • Unity——URP相机详解
  • Flutter笔记: 在Flutter应用中使用SQLite数据库
  • FPGA时序约束(七)文献时序约束实验测试
  • nginx的所有知识点以及使用