コード例 #1
0
ファイル: smartPointer3.cpp プロジェクト: dipankar08/craZyeXp
 SP(const SP<T>& sp) : pData(sp.pData), reference(sp.reference)
 {
     // Copy constructor
     // Copy the data and reference pointer
     // and increment the reference count
     reference->AddRef();
 }
コード例 #2
0
ファイル: smartPointer3.cpp プロジェクト: dipankar08/craZyeXp
 SP(T* pValue) : pData(pValue), reference(0)
 {
     // Create a new reference 
     reference = new RC();
     // Increment the reference count
     reference->AddRef();
 }
コード例 #3
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;
 }
コード例 #4
0
ファイル: main.cpp プロジェクト: CCJY/coliru
 SP(const SP<T>& sp) : pData(sp.pData), reference(sp.reference)
 {
     reference->AddRef();
 }