c++中的++有前置递增和后置递增之分,实现起来需要注意二者不同。
代码实现:
#include<iostream>
using namespace std;
class myInteger
{
friend ostream& operator<<(ostream &cout, myInteger myint);
public:
myInteger() //构造函数初始化
{
m_num=0;
}
//1、前置++运算符重载
myInteger& operator++()
{
//先++,再返回
m_num++;
return *this;
}
//2、后置++运算符重载
//int为占位符,用于区分,换成double
myInteger operator++(int)
{
//先记录当前位置,再++,最后再返回之前的值
myInteger temp=*this;
m_num++;
return temp;
}
private:
int m_num;
};
ostream& operator<<(ostream &cout, myInteger myint)
{
cout << myint.m_num;
return cout;
}
void test01()
{
myInteger myint;
cout << "前置递增:" << endl;
cout << ++myint << endl;
cout << myint << endl;
}
void test02()
{
myInteger myint;
cout << "后置递增:" << endl;
cout << myint++ << endl;
cout << myint << endl;
}
int main()
{
test01();
test02();
system("pause");
return 0;
}
运行结果: