- 前置++与 后置 ++
#include <iostream>
using namespace std;
//重载运算符 ++
//自定义整形
class MyInteger{
friend ostream& operator << (ostream& cout, MyInteger myint);
public:
MyInteger()
{
m_Num = 0;
}
//重载前置++
MyInteger& operator++() //返回引用是为了一直对一个变量操作。可去掉&自测,发现 ++( ++myint ) 与 myint输出结果并不相同
{
m_Num ++;
return *this; //在cout中返回void会无法输出
};
//重载后置++
MyInteger operator++(int) //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 << myint <<endl; // 重载<<
cout << ++myint <<endl; // 先加 1 后用:输出1
//cout << ++( ++myint )<<endl;
//cout << myint <<endl;
}
void test02()
{
MyInteger myint;
cout << myint++ <<endl; // 先用 输出0
cout << myint <<endl; // 后加 输出1
}
int main(){
test02();
return 0;
}