递增运算符 “++” 的重载(C++)

递增运算符 “++” 的重载(C++)

瓦正在学 C++ ,会持续更新详细的 学习进度笔记 ,希望大家督促指导喔!
记得点个关注噻!

#include<iostream>
using namespace std;

// 递增运算符 “++” 的重载:
class MyInteger {
	//采用友员实现 左移运算符重载函数 对私有权限下的 m_num 的访问
	friend ostream& operator<< (ostream& cout, MyInteger mint);
public:
	//构造函数:
	//将 m_num 初始化为 0
	MyInteger() {
		m_num = 0;
	}
	
	// 前置 递增运算符 的重载:
	MyInteger& operator++ () {//返回引用的目的是:操作的是同一块空间
		//实现变量的递增
		m_num++;
		//返回
		return *this;
	}
	
	// 后置 递增运算符 的重载:
	MyInteger operator++(int) {//加 int 的目的是实现函数的重载;
		                       //返回不引用是因为这是临时变量
		//备份
		MyInteger temp;
		temp.m_num = m_num;
		//实现变量的递增
		m_num++;
		//返回备份
		return temp;
	}
private:
	int m_num;
};

//需要重载 左移运算符 "<<" :
ostream& operator<< (ostream& cout, MyInteger mint) {
	cout << mint.m_num << endl;
	return cout;
}

//测试函数:用于测试 前置 的递增运算符:
void test_01() {
	MyInteger mint;
	cout << "mint = " << mint << endl;  //先测试左移运算符的重载 
										//结果为:mint = 0

	cout << "++mint = " << ++mint << endl;// ++mint = 1 测试成功
	cout << "++mint = " << ++mint << endl;// ++mint = 2 测试成功,操作同一空间
}
//测试函数:用于测试 后置 的递增运算符:
void test_02() {
	MyInteger mint;
	cout << "mint = " << mint << endl;// mint = 0
	cout << "mint++ = " << mint++ << endl;//  mint++ = 0 测试成功
	cout << "mint++ = " << mint++ << endl;//  mint++ = 1 测试成功
}
int main() {
	test_01();
	test_02();
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值