#include <iostream>
#include <string.h>
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
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交