#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
C++面试常见问题:手写String类
最新推荐文章于 2024-07-29 00:23:22 发布