C++:模拟实现string类
2016-08-17 19:15
477 查看
#define _CRT_SECURE_NO_WARNINGS 1 #include<iostream> #include<string.h> #include<assert.h> class String { public: //String() // : _pdata(new char[1]) //{ // *_pdata = '\0'; //} // //String(const char* str) // : _pdata(new char[strlen(str) + 1]) //{ // strcpy(_pdata, str); //} //或者这样写 String(const char* str = "") { assert(str); _pdata = new char[strlen(str) + 1]; strcpy(_pdata, str); } String(const String& rhs)//这里必须是引用,要不然会再次构造rhs : _pdata(new char[rhs.size() + 1]) { strcpy(_pdata, rhs.c_str()); } String& operator=(String rhs) // 这里必须是值传递,不能是引用,要构造一个rhs出来, { swap(rhs); return *this; } // C++ 11 String& operator=(String&& rhs) { swap(rhs); return *this; } size_t size() const { return strlen(_pdata); } const char* c_str() const { return _pdata; } void swap(String& rhs) { std::swap(_pdata, rhs._pdata); } ~String() { delete[] _pdata; } private: char* _pdata; };
相关文章推荐
- C++ 中string类的三种模拟实现方式
- C++面试题之模拟实现string类
- 【C++】面试题:模拟实现string类(版本一:用深度拷贝来实现 )
- 模拟实现C++中的string类
- 【c++】模拟实现string类__实现增删查改
- C++ 中string类的三种模拟实现方式
- C++中String类模拟实现以及深拷贝浅拷贝
- 【C++】浅析浅拷贝,深拷贝及写时拷贝(copy_on_write),模拟实现String类。
- 详解C++中String类模拟实现以及深拷贝浅拷贝
- 【C++】模拟实现string类(版本二:用写时拷贝来实现)
- c++模拟动态语言中string类的实现
- 【C++】模拟string类的实现(string 类的深拷贝)
- 模拟实现string类(c++)
- 离散事件模拟---银行业务模拟c++实现
- C++笔试题 String类的实现 三大复制控制函数
- [C++]String类的实现
- 以C++为例子,通过操作内存模拟实现对象的持久化存储(一)
- 以C++为例子,通过操作内存模拟实现对象的持久化存储(一)
- 用C编写一个模拟实现C++多态应用的一个范例
- C++笔试题 String类的实现