00001 // 00002 // See license.txt for license information. 00003 // 00004 // deletable_object.hpp 00005 // 00006 // 17-Jul-2003 phamilton Created 00007 // 00008 00009 #ifndef incCOMMON_DELETABLE_OBJECT 00010 #define incCOMMON_DELETABLE_OBJECT 00011 00012 namespace ph { 00013 namespace common { 00014 00015 class deletable_object_base 00016 /** 00017 Abstract class representing a an object which can be deleted 00018 through a member. 00019 */ 00020 { 00021 public: 00022 virtual ~deletable_object_base() {}; 00023 00024 virtual void delete_object() 00025 { 00026 delete this; 00027 } 00028 //!< Delete the object. The default actually deletes it, so 00029 //! don't forget to call this guy. 00030 }; 00031 00032 }; // common 00033 }; // ph 00034 00035 #endif // incCOMMON_DELETABLE_OBJECT