天天看點

前++,前--,後++,後--的操作符重載

#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

繼續閱讀