C++面试题之string类

来源:互联网 发布:电影源码 编辑:程序博客网 时间:2024/05/23 02:05

参考文章:

《C++面试中string类的一种正确写法》


下面先给出一个参考例子,代码来源是《C++面试中string类的一种正确写法》

</pre><pre name="code" class="cpp">#include <utility>#include <string.h> class String{ public:  String()    : data_(new char[1])  {    *data_ = '\0';  }   String(const char* str)    : data_(new char[strlen(str) + 1])  {    strcpy(data_, str);  }   String(const String& rhs)    : data_(new char[rhs.size() + 1])  {    strcpy(data_, rhs.c_str());  }  /* Delegate constructor in C++11  String(const String& rhs)    : String(rhs.data_)  {  }  */   ~String()  {    delete[] data_;  }   /* Traditional:  String& operator=(const String& rhs)  {    String tmp(rhs);    swap(tmp);    return *this;  }  */  String& operator=(String rhs) // yes, pass-by-value  {    swap(rhs);    return *this;  }   // C++ 11  String(String&& rhs)    : data_(rhs.data_)  {    rhs.data_ = nullptr;  }   String& operator=(String&& rhs)  {    swap(rhs);    return *this;  }   // Accessors   size_t size() const  {    return strlen(data_);  }   const char* c_str() const  {    return data_;  }   void swap(String& rhs)  {    std::swap(data_, rhs.data_);  }  private:  char* data_;};




    IT从业人员需要及时关注技术动态,但是互联网的内容却过于离散,好东西往往隐藏得很深。现在可以在微信公众号里面
    搜索关注“小鱼儿的IT技术分享”,订阅我为大家每天汇总的IT技术信息。欢迎大家关注!
      有兴趣的请点击《与IT技术相关的微信公众号》

0 0