# C++ Prefix vs Postfix increment ## Prefix vs Postfix operator ### Prefix (++a): ```Fixed& operator++()``` - Return: reference to this - Why &: To allow chaining, avoid copy - Implementation ```c++ Fixed& Fixed::operator++() { this->_value++; // return current obj by reference return (*this); } ``` - Returns a reference to the same object after incrementing it - No copying needed - you get the actual incremented object - More efficient since no temporary object is created - The ```&``` indicates it returns a reference to ```*this``` ### Postfix (a++): ```Fixed operator++(int)``` - Return: the original value before incrementing - Why no &: Need to return previous value - Implementation ```c++ Fixed Fixed::operator++(int) { Fixed temp(*this); // save old value ++(*this); // use prefix to increment return (temp); // return old value } ``` - Must return the original value before incrementing - Requires creating a copy of the original value to return - The object itself gets incremented, but the returned value is the old state - No ```&``` because it returns a temporary copy, not a reference