0
点赞
收藏
分享

微信扫一扫

C++编程:自定义String类的构造函数、析构函数、拷贝构造函数和赋值函数

求索大伟 2022-02-19 阅读 164

C++编程:自定义String类的构造函数、析构函数、拷贝构造函数和赋值函数

头文件如下:

//类String
class String{
public:
    String(const char *str = NULL);//普通构造函数
    ~String(void);
    String(const String &other);
    String & operator = (const String &other);
    
    
private:
    char* m_data;
};

源文件如下:

//普通构造函数
String::String(const char *str)
{
    if(NULL == str){
        m_data = new char[1];
        *m_data = '\0';
    }
    else{
        m_data = new char[strlen(str) + 1];
        strcpy(m_data, str);
    }
}

String::~String(void)
{
    delete []m_data;
}

//拷贝构造函数
String::String(const String &other)
{
    m_data = new char[strlen(other.m_data) + 1];
    strcpy(m_data, other.m_data);
}

//赋值函数
String & String::operator = (const String &other)
{
    //检查自赋值
    if(this == &other){
        return *this;
    }
    //删除原有的内存资源
    delete []m_data;
    
    //分配新的资源,并赋值内容
    m_data = new char[strlen(other.m_data) + 1];
    strcpy(m_data, other.m_data);
    //返回本对象的引用
    return *this;
}

举报

相关推荐

0 条评论