高质量程序设计指南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; }
前置版本会比后置版本的效率高很多。后置版本总是要创建一个临时对象,在退出函数时还要销毁它,而且返回临时对象的值时还会调用其拷贝构造函数。