Define precondition and post-condition to a member function.
A precondition is a condition that must be true on entry to a
member function. A class is used correctly if preconditions are never
false. An operation is not responsible for doing anything sensible if its
precondition fails to hold.
For example, the interface invariants of stack class say nothing
about pushing yet another element on a stack that is already full. We say
that isful() is a precondition of the push operation.
A post-condition is a condition that must be true on exit from a
member function if the precondition was valid on entry to that function.
A class is implemented correctly if post-conditions are never false.
For example, after pushing an element on the stack, we know that
isempty() must necessarily hold. This is a post-condition of the push