Dispose Pattern helps explicitly destroying an object when you don't know exactly know when it needs to be destroyed due to several Smart Pointers referring to that object.
If you want to apply Dispose Pattern to an object managed by smart class, you need to add ‘Status' as member variable of object. ‘Status' should mean the object is in useless state since it already has been destroyed. If ‘Status' is in ‘already destroyed state', then it should prompt an error if anything tries referring to it or let it perform properly if otherwise.
Here is the sample sourcecode for Dispose Pattern.
For your note, Dispose Pattern is being used in Java, C#, or other programming lanugages that have Smart Pointer and Garbage Collector.