自定义类似string的类(有以下不完整的类信息,请完善构造函数、析构函数、复制构造函数、输出函数等)
时间: 2023-11-27 16:52:32 浏览: 72
自己写了个string类
以下是一个简单的自定义类似于string的类,名为MyString:
```c++
#include <iostream>
#include <cstring>
class MyString {
private:
char* str;
public:
// 构造函数
MyString();
MyString(const char* s);
// 复制构造函数
MyString(const MyString& other);
// 析构函数
~MyString();
// 输出函数
void print() const;
};
MyString::MyString() {
str = new char[1];
str[0] = '\0';
}
MyString::MyString(const char* s) {
int length = std::strlen(s);
str = new char[length + 1];
std::strcpy(str, s);
}
MyString::MyString(const MyString& other) {
int length = std::strlen(other.str);
str = new char[length + 1];
std::strcpy(str, other.str);
}
MyString::~MyString() {
delete[] str;
}
void MyString::print() const {
std::cout << str << std::endl;
}
```
这个类中包含了一个字符指针 `str`,用于存储字符串。构造函数中使用 `new` 运算符为其分配动态内存。在析构函数中使用 `delete[]` 运算符释放动态内存。
此外,我们还提供了一个复制构造函数,以便从另一个MyString对象复制字符串。print函数用于输出字符串。
阅读全文