欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

类String的构造函数、析构函数、拷贝构造函数和赋值函数

程序员文章站 2022-07-15 17:00:59
...
class String
{
public:
    String();
    String(const char *str);
    String(const String &s);
    ~String();
    String& operator=(const String &str);

private:
    char *data;
};

//默认构造函数
String::String()
{
    data=new char[1];
    *data='\0';
}

//带参数构造函数
String::String(const char *str)
{
    if (str==NULL)
    {
        data=new char[1];
        *data='\0';
    }
    else
    {
        int len=strlen(str);
        data=new char[len+1];
        strcpy(data,str);
    }
}


//复制构造函数
String::String(const String &str)
{
    int len=strlen(str.data);
    data=new char[len+1];
    strcpy(data,str.data);
}

//析构函数
String::~String()
{
    delete[] data;
    data = NULL;
}

//赋值操作符
String& String::operator=(const String &str)
{
    if (this == &str)
        return *this;

    int len=strlen(str.data);
    delete[] data;
    data = NULL;
    data=new char[len+1];
    strcpy(data,str.data);

    return *this;
}


转载于:https://my.oschina.net/gaosheng/blog/294965