今天在我更加深入地学习C++类的重载这一章,特别是读到有关重载自加运算符(++)的时候,我才发现我对C++的自增自减运算的了解并不很全面。以前只是机械的了解到所谓的前自加(++i)就是先加后用,后自加就是先用后加。这样就出现了很多我完全解释不通的地方,如下面的代码:
int main(){ int i = 0; (i++) = 5; // 这里编译不通过: error: lvalue required as left operand of assignment cout << i << endl; i = 0; (++i) = 5;//而这里却可以编译通过,程序结果输出5。 cout << i << endl; return 0; }