Esempio n. 1
0
File: main.cpp Progetto: CCJY/coliru
 SP<T>&  reset ()
 {
     if(reference->Release() == 0)
     {
         delete pData;
         delete reference;
     }
 }
Esempio n. 2
0
File: main.cpp Progetto: CCJY/coliru
 ~SP()
 {
     // if reference become zero delete the data
     if(reference->Release() == 0)
     {
         delete pData;
         delete reference;
     }
 }
Esempio n. 3
0
 ~SP()
 {
     // Destructor
     // Decrement the reference count
     // if reference become zero delete the data
     if(reference->Release() == 0)
     {
         delete pData;
         delete reference;
     }
 }
Esempio n. 4
0
File: main.cpp Progetto: CCJY/coliru
 SP<T>& operator = (const SP<T>& sp)
 {
     // Assignment operator
     if (this != &sp) // Avoid self assignment
     {
         // Decrement the old reference count
         // if reference become zero delete the old data
         if(reference->Release() == 0)
         {
             delete pData;
             delete reference;
         }   
         // Copy the data and reference pointer
         // and increment the reference count
         pData = sp.pData;
         reference = sp.reference;
         reference->AddRef();
     }
     return *this;
 }