c++ string 拷贝构造
在C++中,拷贝构造函数是一种特殊的构造函数,用于创建一个新的对象,并将其初始化为与现有对象相同的值。在字符串类中,拷贝构造函数被用于创建一个新的字符串对象,并将其值复制给另一个字符串对象。这个过程涉及到在堆上分配内存,并将原始字符串的内容复制到新的内存空间中。
以下是一个示例类来说明C++字符串的拷贝构造函数的用法:
```cpp字符串复制函数
#include <cstring>
class String {
private:
char* m_buffer;
int m_size;
public:
//默认构造函数
String() : m_buffer(nullptr), m_size(0) {}
//带参数的构造函数
String(const char* str) {
m_size = std::strlen(str);
m_buffer = new char[m_size + 1];
std::strcpy(m_buffer, str);
}
//拷贝构造函数
String(const String& other) {
m_size = other.m_size;
m_buffer = new char[m_size + 1];
std::strcpy(m_buffer, other.m_buffer);
}
//析构函数
~String() {
delete[] m_buffer;
}
};
```
在上面的代码中,我们定义了一个字符串类`String`,它有一个`m_buffer`成员变量指向字符串的内容,一个`m_size`成员变量表示字符串的长度。我们重载了默认构造函数、带参数的构造函数、拷贝构造函数和析构函数。
拷贝构造函数的定义如下:
```cpp
String(const String& other) {
m_size = other.m_size;
m_buffer = new char[m_size + 1];

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。