class string
{
public:
string(const char *str=NULL);
string(const string &other);
~string(void);
string& operator=(const string &other);
private:
char *m_data;
};
string::string(const char *str)
{
if (str==NULL)
{
m_data = new char[1];
*m_data = '\0';
}else
{
int len = strlen(str);
m_data = new char[len+1];
strcpy(m_data,str);
}
}
string::string(const string &other)
{
int len = strlen(other.m_data);
m_data = new char[len+1];
strcpy(m_data,other.m_data);
}
string::~string(void)
{
delete [] m_data;
}
string& string::operator=(const string& other)
{
if (this==&other)
{
return *this;
}else
{
delete [] m_data;
int len = strlen(other.m_data);
m_data = new char[len+1];
strcpy(m_data,other.m_data);
}
return *this;
}