string的模拟实现
对STL中的string类有了一个基本的认识后,本模块,我会带着你从0 ~ 1去模拟一下s库中string的这些接口,当然是比较常用的一些,代码量大概600行左右
1、前情提要
- 首先第一点,为了不和库中的string类发生冲突,我们可以在外层包上一个名称为
bit
的命名空间,此时因为作用域的不同,就不会产生冲突了,如果这一块有点忘记的同学可以再去看看 namespace命名空间
namespace bit
{
class string {
public:
//...
private:
size_t _size;
size_t _capacity;
char* _str;
};
}
- 接下去呢,就在测试的
test3.cpp
中包含一下这个头文件,此时我们才可以在自己实现的类中去调用一些库函数
#include
#include
using namespace std;
#include "string.h"
2、Member functions —— 成员函数
构造函数
好,首先第一个我们要来讲的就是【构造函数】
- 首先我们从无参的构造函数开始讲起,看到下面的代码,你是否有想起了 C++初始化列表,我们默认给到
_size
和_capacity
的大小为,然后给字符数组开了一个大小的空间,并且将其初始化为