---- 整理自狄泰软件唐佐林老师课程


++i 还是 i++ ++ 操作符可以重载吗?如何区分前置 ++ 和后置 ++?++ 操作符 不需要额外的参数++ 操作符 需要一个int类型的占位参数#include
#include
using namespace std;
class Test
{
int mValue;
public:
Test(int i) {
mValue = i;
}
int value() {
return mValue;
}
Test& operator++() { // 前置++效率高
++mValue;
return *this;
}
Test operator++(int) { // 后置++多了一步
Test ret(mValue);
mValue++;
return ret;
}
};
int main()
{
Test t(0);
Test tt = ++t; // 1
cout << "tt.value() = " << tt.value() << endl;
tt = t++; // tt-->1, t-->2
cout << "tt.value() = " << tt.value() << endl;
cout << "t.value() = " << t.value() << endl;
return 0;
}

++ 的效率与后置 ++ 的效率 基本相同++ 的效率 高于 后置 ++++ 操作符提高程序效率++ 操作符和后置 ++ 操作符都可以重载++ 操作符的重载必须符合其原生语义++ 和后置 ++ 的效率几乎相同++ 的效率高于后置 ++