天天看点

前++,前--,后++,后--的操作符重载

#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

继续阅读