参考链接(链接讲的很全):C++前置++和后置++的区别
对于迭代器和其他模板对象使用前缀形式 (++i) 的自增, 自减运算符.,理由是 前置自增 (++i) 通常要比后置自增 (i++) 效率更高。
class Age   {   public:   Age& operator++() //前置++   {   ++i;   return *this;   }   const Age operator++(int) //后置++   {   Age tmp = *this;   //tmp是一个临时对象,会造成一次构造函数和一次析构函数的额外开销。++(*this);  //利用前置++   return tmp;   }   Age& operator=(int i) //赋值操作   {   this->i = i;   return *this;   }   private:   int i;   }; 
1.返回值类型的区别
前置++的返回类型是(引用)Age&,后置++的返回类型const Age(临时对象)。这意味着,前置++返回的是左值,后置++返回的是右值。
2.形参的区别
 前置++没有形参,而后置++有一个int形参,但是该形参也没有被用到。很奇怪,难道有什么特殊的用意?
 其实也没有特殊的用意,只是为了绕过语法的限制。
 前置++与后置++的操作符重载函数,函数原型必须不同。否则就违反了“重载函数必须拥有不同的函数原型”的语法规定。
3.代码实现的区别
 前置++的实现比较简单,自增之后,将this返回即可。需要注意的是,一定要返回this。
 后置++的实现稍微麻烦一些。因为要返回自增之前的对象,所以先将对象拷贝一份,再进行自增,最后返回那个拷贝。
4.效率的区别
 