编写类String的构造函数、析构函数和赋值函数,已知类String的原型为
class String
{
public:
String(constchar*str = NULL);
String(const String &other);
~ String(void);
String & operator =(const String &other);
private:
char*m_data;
};
解答:
String::String(constchar*str)
{
if(str==NULL)
{
m_data =newchar[1];
*m_data ='\0';
}
else
{
int length = strlen(str);
m_data =newchar[length+1];
strcpy(m_data, str);
}
}
String::~String(void)
{
delete [] m_data; // 或deletem_data;
String::String(const String &other)
int length = strlen(other.m_data);
m_data =newchar[length+1];
strcpy(m_data, other.m_data);
}
String & String::operator =(const String &other)
{
if(this==&other)
return*this;
delete [] m_data;
int length = strlen( other.m_data );
m_data =newchar[length+1];
strcpy( m_data, other.m_data );
return*this;
}