123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- #include "Betriebssystem.h"
- namespace Framework
- {
- template<typename T>
- class RCPointer
- {
- private:
- T *pointer;
- public:
- RCPointer()
- {
- pointer = 0;
- }
- RCPointer( T *pointer )
- {
- this->pointer = pointer;
- }
- RCPointer( RCPointer &ptr )
- {
- this->pointer = ptr.pointer ? dynamic_cast<T *>( ptr.pointer->getThis() ) : 0;
- }
- ~RCPointer()
- {
- if( pointer )
- pointer->release();
- }
- RCPointer &operator=( RCPointer &ptr )
- {
- if( this->pointer )
- this->pointer->release();
- this->pointer = ptr.pointer ? dynamic_cast<T *>( ptr.pointer->getThis() ) : 0;
- }
- RCPointer &operator=( T *ptr )
- {
- if( this->pointer )
- this->pointer->release();
- this->pointer = ptr;
- }
- T *operator->()
- {
- return pointer;
- }
- operator T *( )
- {
- return pointer;
- }
- };
- }
|