delete内存前判断该内存是否为空是不是一个很必须的步骤
下面两个函数代码是林锐书上string类的赋值函数和析构函数。
关于这两个函数中delete内存有点小疑问。如下所示:
关于这两个函数中delete内存有点小疑问。如下所示:
String String::operator=(const String &other)
{
if (this!=&other)
{
char *temp = new char[strlen(other.m_data)+1];
strcpy(temp,other.m_data);
delete []m_data ;//这里是不是应该改为if(m_data!=NULL)delete []m_data更合理呢
m_data = temp;
}
return *this;
}
String::~String()
{
delete []m_data;//这里是不是应该改为if(m_data!=NULL){delete []m_data;m_data = NULL;}更好呢?
}
...全文


