#include<iostream> using namespace std; int n; class myint { friend ostream& operator<<(ostream& cout, myint mi); private: int mynum; string name; public: myint() { mynum = 0; name = "*********"; } myint& operator++() { n++; mynum++; cout <<"第"<<n<<"次"<< "前置++" << endl; return *this; } myint& operator--() { n++; mynum--; cout << "第" << n << "次" << "前置--" << endl; return *this; } myint operator++(int) { n++; myint temp = *this; mynum++; cout << "第" << n << "次" << "后置++" << endl; return temp; } myint operator--(int) { n++; myint temp = *this; mynum--; cout << "第" << n << "次" << "后置--" << endl; return temp; } }; ostream& operator<<(ostream& cout, myint me) { n++; cout <<"a="<< me.mynum << me.name <<"n="<< n<<endl; return cout; } int main() { myint me; cout << --me << me++ << me-- << ++me << endl; int a = 0; }
第1次前置++
第2次后置–
第3次后置++
第4次前置–
a=0*********n=5
a=0*********n=6
a=1*********n=7
a=1*********n=8
非常的有意思,直接说结论,++,- -前置和后置,4种,根据语句,从右往左进行,压栈,最后输出,出栈