代码出错哪?为什么?
class MyString
{
private:
char *m_data;
public:
MyString()
{
m_data = 0;
}
MyString(const char *p)
{
if(p)
{
unsigned int len = strlen(p)+1;
m_data = new char(len);
memcpy_s(m_data,len,p,len);
}
else
{
m_data = 0;
}
}
MyString& operator =(const char* p)
{
if(p != m_data)
{
delete[] m_data;
unsigned int len = strlen(p)+1;
m_data = new char(len);
memcpy_s(m_data,len,p,len);
}
return *this;
}
~MyString()
{
delete[] m_data;
}
};
int _tmain(int argc, _TCHAR* argv[])
{
MyString str;
str = "abc";
return 0;
}