C++网易云课堂开发工程师--String复习

class String{

  public:

    String(const char* cstr = 0);

    String(const String& str);                                  拷贝构造

    String& operator = (const String& str);

    ~String();

    char* get_c_str() const {return m_data;}    

  private:

    char* m_data;

}

 

1.构造函数和析构函数

String::String(const char* cstr = 0){

  if(cstr){

    m_data = new char[strlen(cstr) + 1];

    strcpy(m_data, cstr);

  }

  else{

    m_data = new char[1];

    *m_data = '\0';

  }

}

析构函数

inline

String::String(){

  delete[] m_data;

}

copy ctor拷贝构造函数

inline

String::String(const String& str){

  m_data = new char[strlen(str.m_data) + 1];

  strcpy(m_data, str.m_data);

}

copy assignment operator(拷贝赋值函数)

inline String&

String::operator=(const String& str){

  if(this == &str)

    return *this;

  delete[] m_data;

  m_data = new char[strlen(str.m_data) + 1];

  strcpy(m_data, str.m_data);

  return *this;

}

posted @ 2018-08-20 21:35  sky-zz  阅读(179)  评论(0编辑  收藏  举报