#include <iostream>// 重载前置和后置操作符class UInt{public:UInt():m_id(0) {}friend std::ostream& operator<<(std::ostream& cout, const UInt &it);// 前置自增UInt& operator++() {std::cout<<"prefix++"<<std::endl;(*this) +=1;return *this;}// 后置自增,为了区分前置自增,参数中需要有int类型参数(函数体中并不用到,实参都是0)// 需要申请变量保留旧的值const UInt operator++(int i) {std::cout<<"postfix++"<<std::endl;UInt old = *this;++(*this);return old;// 函数返回const原因是,不支持it++++操作,即便支持,后面++也是对it++的对象进行加1,而不是it加1}UInt& operator+=(int i) {std::cout<<"+="<<std::endl;(*this).m_id +=i;return *this;}int m_id;};std::ostream& operator<<(std::ostream& cout, const UInt &it){std::cout<<it.m_id<<std::endl;return cout;}void Test(){UInt it;it++;std::cout<<it<<std::endl;UInt it1;++(++it1);std::cout<<it1<<std::endl;}int main(){Test();return 0;}
100字范文,内容丰富有趣,生活中的好帮手!