第3个回答 2019-03-01
++i跟i++的区别是这样的:
#include
<iostream.h>
void
main()
{
int
i=3,j=3;
cout<<++i;
//OUT:
4
cout<<j++;
//OUT:
3
cout<<i;
//OUT:
4;
cout<<j;
//OUT:
4;
}
但是可能效率会不一样,实现可能如此:
class
CTemp
{
public:
CTemp():i(0)
{
}
CTemp
operator
++
(int)
//i++调用这个
{
CTemp
tmp(*this);
i++;
return
tmp;
}
CTemp
&
operator
++()
//++i调用这个
{
i++;
return
*this;
}
//
operator
int
const
(){
return
i;
}
virtual
ShowInfo()
{
CString
strMsg;
strMsg.Format("i
=
%d",i);
AfxMessageBox(strMsg);
}
protected:
int
i
;
private:
};
实际上++i可能比i++要块一点,当然,编译器不知道会不会做这种优化。