/*
实现一个string满足基本用法
*/
class MyString
{
public:
//默认参数
MyString(const char *str=""):m_str(strcpy(new char[strlen(str)+1], str))
{
}
~MyString(void)
{
if (m_str)
{//数组形式的删除内存
delete []m_str;
m_str = nullptr;
}
}
//深拷贝构造
MyString(const MyString&that):m_str(strcpy(new char[strlen(that.m_str) + 1], that.m_str))
{
}
//深拷贝赋值
MyString&operator=(const MyString&that)
{
//防止紫赋值
if (&that!=this)
{
MyString temp(that);//深拷贝构造,temp是i2的临时对象
swap(m_str, temp.m_str);
}
return *this;
}
const char *c_str(void)const
{
return m_str;
}
private:
char* m_str;
};