C++ String类构造函数实现
时间: 2023-07-15 19:11:41 浏览: 119
C++标准库中的String类有多个构造函数,下面给出其中的一些实现方式:
1. 默认构造函数
```c++
string::string()
{
// 分配一个字节的空间,存储空字符
char* data = new char[1];
*data = '\0';
// 初始化成员变量
_capacity = 0;
_size = 0;
_data = data;
}
```
2. 指定长度的构造函数
```c++
string::string(size_t count, char ch)
{
// 分配 count + 1 个字节的空间,存储 count 个字符和一个空字符
char* data = new char[count + 1];
for (size_t i = 0; i < count; ++i)
{
data[i] = ch;
}
data[count] = '\0';
// 初始化成员变量
_capacity = count;
_size = count;
_data = data;
}
```
3. 字符串构造函数
```c++
string::string(const char* s)
{
// 统计字符串长度
size_t count = 0;
while (s[count] != '\0')
{
++count;
}
// 分配 count + 1 个字节的空间,存储字符串和一个空字符
char* data = new char[count + 1];
for (size_t i = 0; i < count; ++i)
{
data[i] = s[i];
}
data[count] = '\0';
// 初始化成员变量
_capacity = count;
_size = count;
_data = data;
}
```
4. 拷贝构造函数
```c++
string::string(const string& other)
{
// 分配 other._capacity + 1 个字节的空间,存储 other._data 和一个空字符
char* data = new char[other._capacity + 1];
for (size_t i = 0; i < other._size; ++i)
{
data[i] = other._data[i];
}
data[other._size] = '\0';
// 初始化成员变量
_capacity = other._capacity;
_size = other._size;
_data = data;
}
```
阅读全文