首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

代码疏失哪?为什么

2013-12-26 
代码出错哪?为什么?class MyString{private:char *m_datapublic:MyString(){m_data 0}MyString(const

代码出错哪?为什么?

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;
}

[解决办法]
m_data = new char(len);

m_data = new char[len];

热点排行