递增运算符重载学习笔记

递增运算符重载学习笔记

C++学习笔记
#include <iostream>
using namespace std;


class MyInteger//定义一个自定义整形类
{
friend ostream & operator << (ostream & cout, MyInteger myint);//友元重载左移运算符

public:
	MyInteger()
	{
		m_NUM = 0;
	}

   //前置递增实现
	MyInteger& operator++()//返回地址
	{
		++m_NUM; //后置递增
		return *this;直接值传递返回数据类型
	}
 
      *这里一个难点就是后置递增为什么不是返回地址*
      如果返回局部对象,在执行完之后this会被释放,后面会引起非法操作

	**//MyInteger& operator++(int) int代表占位参数,可以用于区分前置和后置递增**
	MyInteger operator++(int)//返回值
	{
		MyInteger temp = *this;//先记录当时结果
		m_NUM++;//再前置递增
		return temp;//再返回记录当时的结果
	}

private:
	int m_NUM;
};

//左移运算符重载实现
ostream & operator << (ostream & cout, MyInteger myint)//ostream是cout定义数据类型
{
	cout << myint.m_NUM;
	return cout;
}

//测试前置递增函数
void test01()
{
	MyInteger myint;//创建一个自定义整型

	cout << ++myint << endl;//自定义整形前置地政
}

//测试后置递增函数
void test02()
{
	MyInteger myint2;//创建一个自定义整型

	cout << myint2++ << endl;//自定义整型后置递增
}

//主函数调用测试函数实现递增运算符重载
int main()
{
	test01();
	test02();

	system("pause");
	return 0;
}




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值