- 论坛徽章:
- 0
|
#include "iostream.h"
#include "iomanip.h"
class class_{
int i;
public:
class_(int _i=0):i(_i){}
class_(class_ & obj){i=obj.i;}
inline int getout() const {return i;}
inline void add(){i++;}
inline void sub(){i--;}
friend class_ operator ++(class_ &,int);
friend class_ & operator ++(class_ & );
friend ostream & operator <<(ostream &,class_ & ;
};
class_ operator ++(class_ & L ,int){
class_ temp=L;
L.add();
return temp;
}
class_ & operator ++(class_ & R){
R.add();
return R;
}
ostream & operator <<(ostream & out,class_ & obj){
out<< obj.getout();
return out;
}
void main(){
class_ c1=10;
class_ c2=c1;
cout<<c1++<<endl
<<c2++<<endl;
// <<++c1<<endl
// <<++c2<<endl;
}
问题是为何两次结果不一样,
一次是注释,答案是10,10是理想中的答案,但是......
一次是去掉注释,这时10 10的答案会变成11,11,12,12
我想应该是10,10,11,11呀. |
|