C++中运算符重载++前置和后置,实现中有什么不同啊,它们各有什么内函?

来源:百度知道 编辑:UC知道 时间:2024/05/24 13:17:42
一楼,在++后置中,如果返回操作前的状态,再自增操作,函数已经结束,这个结果怎样体现出来的?

单目操作符++重载确实存在前置和后置的差别。这个原理与普通类型的操作数基本相同。如果执行操作符前置的运算,那么调用该操作符的对象将返回自增操作的结果;如果执行操作符后置的运算,那么调用该操作符的对象将返回操作前的状态,并执行了自增操作。下面举类对象的例子说明一下。
class objtype;

// ++前置
objtype objtype::operator++()
{
// objtype对象自增操作
return *this;
}

// ++后置
objtype objtype::operator++(int noused)
{
objtype tmp = *this; // 保存当前的objtype对象
// objtype对象自增操作
return tmp;
}