类 String 的拷贝构造函数与赋值函数

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ds1130071727/article/details/88352422

// 拷贝构造函数 
 

String::String(const String &other)  
{
    // 允许操作 other 的私有成员 m_data
    int length = strlen(other.m_data);
    m_data = new char[length+1];
    strcpy(m_data, other.m_data);
}

// 赋值函数
 

String & String::operate =(const String &other)  
{
    // (1) 检查自赋值
    if(this == &other)
    return *this;
    // (2) 释放原有的内存资源
    delete [] m_data;
    // (3)分配新的内存资源,并复制内容
    int length = strlen(other.m_data);
    m_data = new char[length+1];
    strcpy(m_data, other.m_data);
    // (4)返回本对象的引用
    return *this;
}

猜你喜欢

转载自blog.csdn.net/ds1130071727/article/details/88352422