题目:
实现String类的构造函数、析构函数并重载赋值操作符。
解答:
class String{
public:
String();
String(const char *pStr);
String(const String &str);
String &operator=(const String &str);
virtual ~String();
private:
char *data;
};
String::String()
{
data = new char[1];
data[0] = '\0';
}
String::String(const char * pStr)
{
if(pStr == NULL)
{
data = new char[1];
data[0] = '\0';
}
else
{
data = new char[strlen(pStr) + 1];
strcpy(data, pStr);
}
}
String::String(const String &str)
{
data = new char[strlen(str.data) + 1];
strcpy(data, str.data);
}
String & String::operator=(const String &str)
{
if(&str == this)
return *this;
delete[] data;
data = new char[strlen(str.data) + 1];
strcpy(data, str.data);
return *this;
}
String::~String()
{
delete[] data;
}
本文详细介绍了如何在C++中实现一个自定义的字符串类,包括构造函数、析构函数及赋值操作符的重载。通过具体代码展示了内存分配、深拷贝等关键步骤。
2207

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



