#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