写出字符串类String的默认构造函数、拷贝构造、析构函数和重载赋值运算符。已知类String的模型为:
class String
{
public:
String(const char *pStr = NULL);
String(const String &other);
~String(void);
String &operate = (const String &Source);
private:
char *m_pData;
};
//构造函数
String::String(const char *pStr)
{
if(pStr == NULL)
{
m_pData = new char[1];
assert(m_pData != NULL);
*m_pData = '\0';
}
else
{
int len = strlen(pStr);
m_pData = new char[len+1];
assert(m_pData != NULL);
strcpy(m_pData,pStr);
}
}
//拷贝构造
String::String(const String &other)
{
int len = strlen(other.m_pData);
m_pData = new char[len+1];
assert(m_pData != NULL);
strcpy(m_pData,other.m_pData);
}
//析构函数
String::~String(void)
{
if(m_pData != NULL)
{
delete []m_pData;
}
}
//重载赋值运算符
String &operate = (const String &Source)
{
if(this == &Source)
return *this;
delete []m_pData;
int len = strlen(Source.m_pData);
m_pData = new char[len+1];
assert(m_pData != NULL)
strcpy(m_pData,Source.m_pData);
return *this;
}

3557

被折叠的 条评论
为什么被折叠?



