类和对象-c++运算符重构-递增运算符重载

(1)对于前置递增和后置递增可以通过递增运算符重构来实现

可以实现一下例子

using namespace std;
int main()
{
	int a=10;
	cout<<a++<<endl;
	cout<<a<<endl;
	int b=10;
	cout<<++b<<endl;
	cout<<b<<endl;
}

【1】实现前置递增:

using namespace std;
class myteger{
	friend ostream& operator<<(ostream& cout,myteger p);
	public:
		myteger(){
			m_Num=0;
		}
		myteger& operator++(){
			m_Num++;
			return *this;
		}//记住返回引用,不是返回值
	private:
		int m_Num;
};
ostream& operator<<(ostream& cout,myteger p){
	cout<<p.m_Num;
	return cout;
}

void test01(){
	myteger myint;
	cout<<myint<<endl;
	cout<<++myint<<endl;
	cout<<myint<<endl;
}

int main()
{
	test01();
}

alt

【2】实现后置递增

和前置引用略有不同,记住后置引用返回的是值

using namespace std;
class myteger{
	friend ostream& operator<<(ostream& cout,myteger p);
	public:
		myteger(){
			m_Num=0;
		}
		myteger& operator++(){
			m_Num++;
			return *this;
		}
		myteger operator++(int)//占位参数,用于区别前置的符号重构函数 
		{
			myteger temp=*this;
			m_Num++;
			return temp; 
		}
	private:
		int m_Num;
};
ostream& operator<<(ostream& cout,myteger p){
	cout<<p.m_Num;
	return cout;
}

void test01(){
	myteger myint;
	cout<<myint<<endl;
	cout<<++myint<<endl;
	cout<<myint<<endl;//前置引用例子 
	cout<<myint++<<endl;
	cout<<myint<<endl;//后置引用例子 
}

int main()
{
	test01();
}

alt

全部评论

相关推荐

不愿透露姓名的神秘牛友
03-28 13:48
hory权:校招vip纯神人了,还说自己是什么师范大学的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务