C++标准规定:当为一个类型重载++, --的前置版本时,不需要参数;当为一个类型重载++, --的后置版本时,需要一个int类型的参数作为标志。
可参考<The design and Evolution of C++>
可参考<The design and Evolution of C++>
- class Integer{
- long m_data;
- public:
- Integer(long data): m_data(data){}
- Integer& operator++(){
- cout << "Integer::operator++() called" << endl;
- m_data++;
- return *this;
- }
- Interger operator++(int){
- cout << "Integer::operator++(int) called" << endl;
- Integer tmp = *this;
- m_data++;
- return tmp;
- }
- };