c++面试题解(day2)

三、string 类的具体实现

#include
using namespace std;

class String
{
public:
    String(const char* str = NULL);  //构造函数
    String(const String &another);  //复制构造函数
    ~String();  //析构函数
    String &operator = (const String &rhs);  //赋值函数
    char *m_data; //用于保存字符串 
}

//1.判断参数是否为null  2.赋值前给m_data动态申请内存 
String::String(const char *str)
{
    if(str == NULL)
    {
        m_data = new char[1];
        m_data[0] = '/0';    
    }    
    else
    {
        m_data = new char[strlen(str)+1];
        strcpy(m_data,str);
    }

//将对象another的成员变量m_data赋值给另外一个m_data 
String::String(const String &another)
{
    m_data = new char[strlen(another.m_data)+1];
    strcpy(m_data,another.m_data);

你可能感兴趣的:(c++,c++)