コード例 #1
0
ファイル: main.cpp プロジェクト: CCJY/coliru
 SP<T>&  reset ()
 {
     if(reference->Release() == 0)
     {
         delete pData;
         delete reference;
     }
 }
コード例 #2
0
ファイル: main.cpp プロジェクト: CCJY/coliru
 ~SP()
 {
     // if reference become zero delete the data
     if(reference->Release() == 0)
     {
         delete pData;
         delete reference;
     }
 }
コード例 #3
0
ファイル: smartPointer3.cpp プロジェクト: dipankar08/craZyeXp
 ~SP()
 {
     // Destructor
     // Decrement the reference count
     // if reference become zero delete the data
     if(reference->Release() == 0)
     {
         delete pData;
         delete reference;
     }
 }
コード例 #4
0
ファイル: main.cpp プロジェクト: 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;
 }