Quote Originally Posted by JohnW@Wessex
post-increment
Return by value and make the function const.
hmm... but isn't it wrong to make the function const? After all, it should still be modifying the current object. Yet, whether to make a member function const or non-const is more than just about operator overloading when the operator is defined as a member function; it is about member functions in general.

Quote Originally Posted by JohnW@Wessex
operator +
Friend function, defined in terms of +=, return by value.
Same goes for this, methinks. Like, if you are able to implement the function using the public interface of the class, then you know that it should be a non-member non-friend function. Consequently, you can reason that if operator+ is defined in terms of +=, it need not be a friend function. So, what you might need to remember is to consider whether you should define operator+ in terms of operator+= and whether it should return by value or by reference... but the latter should become obvious when you are actually trying to implement it, right?