| class JunkBase | |
| { | |
| public: | |
| virtual void DoSomething( void ) = 0; | |
| protected: | |
| virtual ~JunkBase( void ) {} | |
| JunkBase( void ) {} | |
| }; | |
| class Junk : protected JunkBase | |
| { | |
| public: | |
| Junk( void ) : JunkBase() {} | |
| virtual ~Junk( void ) {} | |
| protected: | |
| inline JunkBase * AsBase( void ) | |
| { return dynamic_cast< JunkBase * >( this ); } | |
| virtual void DoSomething( void ) { } | |
| }; | |