1 #include<iostream> 2 using namespace std; 3 class INT 4 { 5 friend ostream& operator<<(ostream& os,const INT& i); 6 public: 7 INT(int i):m_i(i){}; 8 9 //prefix:increament and then fetch 10 INT& operator++() 11 { 12 ++(this->m_i);//随着class的不同,该行应该有不同的操作 13 return *this; 14 } 15 16 //prefix:fetch and then increment 17 const INT operator++(int) 18 { 19 INT temp = *this; 20 ++(*this); 21 return temp; 22 } 23 24 25 //prefix:decrement and then fetch 26 INT& operator--() 27 { 28 --(this->m_i); 29 return *this; 30 } 31 32 //prefix:fetch and then decrement 33 const INT& operator--(int) 34 { 35 INT temp = *this; 36 --(*this); 37 return temp; 38 } 39 40 //dereference 41 int& operator*() const 42 { return (int&)m_i;} 43 44 private: 45 int m_i; 46 }; 47 48 ostream& operator<<(ostream& os,const INT& i) 49 { 50 os<<‘[‘<<i.m_i<<‘]‘; 51 return os; 52 } 53 54 int main() 55 { 56 INT I(5); 57 cout<<I++;//[5] 58 cout<<++I;//[7] 59 cout<<I--;//[7] 60 cout<<--I;//[5] 61 cout<<*I;//5 62 }
时间: 2024-10-17 08:07:49