以下是引用BlueDreame在2005-4-8 16:06:00的发言:
我最讨厌这种题,好的程序员会避免这种现象的出现。
我最讨厌这种题,好的程序员会避免这种现象的出现。
支持!
楼主,研究这样的细节,没有意义。
好好学习,天天向上。
#include <iostream>
using namespace std;
class CTest
{
public:
CTest(int v=0) : val(v) {};
CTest operator + (CTest b){cout << "plus "<< endl; return CTest(val+b.val);}
CTest operator ++ (int){cout << "++" << endl; return CTest(val++);}
int val;
};
void main()
{
CTest x(4),y(0);
y=(x++)+(x++)+(x++);
cout << "y=" << y.val << endl;
}
//那为什么这个不是12?
1.同样道理,++在+之前执行的。所以先算三个++后得到三个临时变量,分别被++了0,1,2次,所以是4+5+6=15