这些是面试时经常会遇到的问题,这里统一实现之,重要的是注意copy构造函数以及赋值函数。
源代码如下:
CExample::~CExample()
{
if (m_pData != NULL)
{
delete []m_pData;
m_pData = NULL;
}
}
CExample& CExample::operator=( const CExample& obj)
{
if (this == &obj)
{
return *this;
}
if (m_pData != NULL)
{
delete []m_pData;
m_pData = NULL;
}
int iLen = strlen(obj.m_pData);
m_pData = new char[iLen + 1];
strcpy(m_pData, obj.m_pData);
return *this;
}