Coding:C++类定义实现部分成员函数


class String
{
public:
    String(const char *str = nullptr);//通用构造函数
    String(const String &other); //拷贝构造函数
    ~String();
    String & operator() =(const String &rhs); //赋值函数
private:
    char *m_data;
};

String::String(const char *str)
{
    if(str == nullptr){  //strlen在参数为NULL时会抛异常才会有这步判断
        m_data = new char[1];
        m_data[0] = '\0';
    }
    else{
        m_data = new char(strlen(str) + 1);
        strcpy(m_data,str);
    }        
}

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 &rhs)
{
    if(this == &rhs){
        return *this;
    }
    delete []m_data;  //删除原来的数据,新开辟一块内存
    m_data = new char[strlen[rhs.m_data] + 1];
    strcpy(m_data,rhs.m_data);
    return *this;
}

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

相关推荐
©️2020 CSDN 皮肤主题: 代码科技 设计师:Amelia_0503 返回首页