#include
#include
using namespace std;
class String
{
public:
String(const char *str); //构造函数
String(const String &other); //拷贝构造函数
String(String &&other); //移动构造函数
~String(); //析构函数
String &operator=(const String &str); //重载赋值运算符
String &operator=(String &&str); //重载移动赋值运算符
private:
char *data;
};
String::String(const char *str = "\0")
{
if (str == NULL) //如果实参为空
{
data = (char *)malloc(sizeof(char) * 1);
data[0] = '\0';
}
else
{
int len = strlen(str);
data = (char *)malloc(sizeof(char) * (len + 1)); //多开一个,存 '\0'
strcpy(data, str);
}
}
String::String(const String &other)
{
int len = strlen(other.data);
data = (char *)malloc(sizeof(c
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34