#include <iostream>
using namespace std;
class Integer{
public:
Integer(int i = 0):m_i(i){}
void print(void){
cout << m_i << endl;
}
//前++
Integer& operator++(void){
++m_i;
return *this;
//前--
//这里是友元函数,自然要传递一个参数
friend Integer& operator--(Integer& i){
--i.m_i;
return i;
//后++,亚元参数来区别前++和后++
const Integer operator++(int){
Integer old = *this;
++*this; //后++复用前++
return old;
//后--
friend const Integer operator--(Integer& i,int){
Integer old = i;
--i; //后--复用前--
private:
int m_i;
};
int main(void){
Integer i(123);
Integer j = ++i; //j 124,i = 124
j = --i; //j 123,i 123
j = i--; //j 123,i 122
j = i++; //j 122 i 123
return 0;
本文转自神ge 51CTO博客,原文链接:http://blog.51cto.com/12218412/1866587