C++递增运算符的重载

#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
using namespace std;

class Integer
{
	//friend ostream& operator<< (ostream& cout, const Integer& temp);
public:
	Integer() {}
	
	//前置递增运算符重载:	
	Integer& operator++()
	{
		this->integer++;
		return *this;
	}

	//后置递增运算符重载:
	//注意返回值,非引用
	Integer operator++(int)  
	{
		Integer temp = *this;
		this->integer++; 
		return temp;
	}

	//不是常函数,是因为传入的是const 修饰的对象,所以形参也要是const修饰的
	//而第一个形参是编译器默认的this指针,不可以显式写出来,所以就在括号后面加一个const表示修饰的是this指针
	void display() const
	{
		cout << this->integer;
	}

protected:
private:
	int integer{};
};

ostream& operator<< (ostream& cout, const Integer& temp)
{
	//cout << "integer = " << temp.integer << endl;
	temp.display();
	return cout;
}

//输出的对象是一个类,需要重载运算符<<
//ostream& operator<< (ostream& cout, const Integer& temp)
//{
//	cout << "integer = " << temp.integer << endl;
//}

void test01()
{
	Integer pinteger01;
	++pinteger01;
	cout << (++pinteger01) << endl;
	cout << pinteger01 << endl;
}

void test02()
{
	Integer pinteger02;
	pinteger02++;
	cout << pinteger02++ << endl;
	cout << pinteger02 << endl;
}
int main()
{
	test01();
	test02();

	return 0;
}

//第一次调用:
//调用拷贝函数->原来的类的整数值+1->返回一个被拷贝后的类的对象
//第二次调用:
//调用拷贝函数(被拷贝的类的整数值已经在原来的基础上自增了)->原来的类的整数值+1->返回一个被拷贝后的类的对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值