Fawzi Mohamed wrote:
the only thing is that the invariant is not checked *after* those method that destroy the object, it will be ok to require a special name for that method (for example destroy, dealloc or similar) if you want to avoid misusage.
There is a method that does that, it's called the destructor. An invariant is not checked after the destructor is run.
