#include "Betriebssystem.h" namespace Framework { template class RCPointer { private: T *pointer; public: static RCPointer of( T *pointer ) { return RCPointer() = pointer; } RCPointer() { pointer = 0; } RCPointer( const RCPointer &ptr ) { this->pointer = ptr.pointer ? dynamic_cast( 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( ptr.pointer->getThis() ) : 0; return *this; } RCPointer &operator=( T *ptr ) { if( this->pointer ) this->pointer->release(); this->pointer = ptr; return *this; } T *operator->() { return pointer; } operator T *( ) { return pointer; } }; }