class MyString
{
public:
//默认构造函数
MyString::MyString()
{
m_data=NULL;
m_size=0;
m_capacity=0;
}
//析构函数
MyString::~MyString()
{
delete[]m_data;
}
//复制构造函数
MyString::MyString(const char *data)
{
m_size=strlen(data);
m_capacity=strlen(data);
m_data=new char[m_size+1];
memset(m_data,0,sizeof(char)*(m_size+1));
strcpy(m_data,data);
}
//赋值构造函数
MyString::MyString(const MyString & rhs)
{
//浅层复制
//m_data=rhs.m_data;
m_size=rhs.m_size;
m_capacity=rhs.m_capacity;
m_data=new char[rhs.m_size+1];
strcpy(m_data,rhs.m_data); //深层复制
}
private:
char *m_data; //数据
int m_size; //大小
int m_capacity; //容量
};