高质量程序设计指南c++/c语言(7)--重载++

#include<iostream>
using namespace std;

class Integer
{
public:

    Integer(int data):m_data(data){}
    Integer & operator++()  //前置版本 ++i
    {
        m_data++;
        return *this;
    }
    Integer operator++(int) //后置版本 i++
    {
        Integer temp = *this;
        m_data++;
        return temp;
    }
private:
    int m_data;
};

int main(void)
{
    Integer x=1;
    x++;
    ++x;

    return 0;
}

前置版本会比后置版本的效率高很多。后置版本总是要创建一个临时对象,在退出函数时还要销毁它,而且返回临时对象的值时还会调用其拷贝构造函数。

posted on 2013-04-26 21:25  江在路上2  阅读(102)  评论(0编辑  收藏  举报