[cpp] view plaincopy
class String
{
public:
String(const char *str = NULL); // 普通构造函数
String(const String &other); // 拷贝构造函数
~String(void); // 析构函数
String & operator =(const String &other); // 赋值函数
private:
char *m_data; // 用于保存字符串
};
请编写String的上述4个函数普通构造函数、拷贝构造函数、析构函数和赋值函数。
代码如下:
[cpp] view plaincopy
class String
{
private:
char *m_data; //私有成员,保存字符串
public:
String(const char *str = NULL); //普通构造函数
String(const String &other); //复制构造函数
~String(void); //析构函数
String & operator =(const String &other); //赋值函数
};
String::String(const char *str = NULL) //带一个指针的普通构造函数
{
if(str == NULL)
{
m_data = new char[1]; //分配一个字节
assert(m_data != NULL);
*m_data = '\0';
}
else
{
m_data = new char[strlen(str)+1]; //分配空间容纳str内容