在C ++中,前缀++后缀++通过下面2个函数就能很好的理解:
这段代码是在网上截下来的
//返回一个自身的引用,没有临时对象的代价,性能较高 前缀++ UInt& UInt::operator ++() { *this += 1; return *this; } //返回一个临时对象,增加了一个对象构造和析构的代价,性能较低 后缀++ //由此可见,对于用户自定义类型,应该尽量使用前缀的increment const UInt UInt::operator ++(int) { UInt oldVal = *this; ++(*this); return oldVal; }可以看到,前缀++是对自身加1,然后返回的是自身。但是后缀++是先创建的临时变量,将本身值加1后,返回的是那个临时变量!!看出来区别了吧。
通过代码来辨析比死记硬背要好的多!