It's hijacking, because when it's destroyed, it destroys the pointed object as well (that's what you said). This means that if it doesn't have ownership of the object, it'll hijack it from the real owner. And it's probably implemented more or less like so:
template <typename T> class HijackingPointer {
public:
HijackingPointer(T *ptr=0), m_ptr(ptr){}
void setPointer(T* ptr){ m_ptr = ptr; }
~HijackingPointer(){ delete m_ptr; }
// + operator T*, operator * and operator ->
private:
T* m_ptr;
};
template <typename T> class HijackingPointer {
public:
HijackingPointer(T *ptr=0), m_ptr(ptr){}
void setPointer(T* ptr){ m_ptr = ptr; }
~HijackingPointer(){ delete m_ptr; }
// + operator T*, operator * and operator ->
private:
T* m_ptr;
};
To copy to clipboard, switch view to plain text mode
I don't think I have to link to a bloated library just for this small snippet.
Bookmarks