C++網易雲課堂開發工程師--String複習

class String{函數

  public:this

    String(const char* cstr = 0);spa

    String(const String& str);                                  拷貝構造get

    String& operator = (const String& str);class

    ~String();構造函數

    char* get_c_str() const {return m_data;}    copy

  private:co

    char* m_data;let

}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;

}

相關文章
相關標籤/搜索