C语言中String成员模拟实现详细步骤解析是怎样的?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1607个文字,预计阅读时间需要7分钟。
目录 + string类的成员设计 + 普通构造函数的模拟 + 拷贝构造函数的模拟 + 值重载函数的模拟 + String的构造函数模拟 + 补全上述的成员函数 + 迭代器的简单模拟 + 其他成员函数的模拟 + string类的成员
目录
- string类的成员设计
- 普通构造函数的模拟
- 拷贝构造函数的模拟
- 赋值重载函数的模拟
- String的析构函数模拟
- 补全上述的成员函数
- 迭代器的简单模拟
- 其他成员函数的模拟
string类的成员设计
class string { private: char* _str; int _size; int _capacity; };
说明:以下的五个成员函数的模拟实现,均去除了_size 和_capacity成员变量,目的是为了更方便解释重点。在五个成员函数模拟后,会对string类的设计进行补全。
普通构造函数的模拟
我们是否可以使用默认构造函数来初始化对象?在这种情况下是万万不能的!要记住默认的构造函数对自定义类型会去调用它自己的构造函数进行初始化,而对于内置类型是不做处理的,此时我们的成员变量_str的类型是内置类型,不会被初始化,所以一定要自己写构造函数。
本文共计1607个文字,预计阅读时间需要7分钟。
目录 + string类的成员设计 + 普通构造函数的模拟 + 拷贝构造函数的模拟 + 值重载函数的模拟 + String的构造函数模拟 + 补全上述的成员函数 + 迭代器的简单模拟 + 其他成员函数的模拟 + string类的成员
目录
- string类的成员设计
- 普通构造函数的模拟
- 拷贝构造函数的模拟
- 赋值重载函数的模拟
- String的析构函数模拟
- 补全上述的成员函数
- 迭代器的简单模拟
- 其他成员函数的模拟
string类的成员设计
class string { private: char* _str; int _size; int _capacity; };
说明:以下的五个成员函数的模拟实现,均去除了_size 和_capacity成员变量,目的是为了更方便解释重点。在五个成员函数模拟后,会对string类的设计进行补全。
普通构造函数的模拟
我们是否可以使用默认构造函数来初始化对象?在这种情况下是万万不能的!要记住默认的构造函数对自定义类型会去调用它自己的构造函数进行初始化,而对于内置类型是不做处理的,此时我们的成员变量_str的类型是内置类型,不会被初始化,所以一定要自己写构造函数。

