MainObjectArrayPtr& MainObjectArrayPtr::operator=(const MainObjectArrayPtr& p_MOAP) { m_MOA->m_ReferenceCount--; if (m_MOA->m_ReferenceCount <= 0 && m_MOA != p_MOAP.m_MOA) delete m_MOA; m_MOA = p_MOAP.m_MOA; m_MOA->m_ReferenceCount ++; return *this; }