#include <iostream>
#include <string.h>
#include <stdio.h>
#pragma warning(disable:4996) // vs2015中运行strcpy()函数总是报错,屏蔽这个错误
using namespace std;
class String
{
private:
char *data;
public:
String();
String(const char* m_data);
String(const String &other);
String & operator=(const String &other);
~String();
void print() { printf("%s\n", data); }
};
String::String()
{
data = new char[1];
*data = '\0';
}
String::String(const char* m_data)
{
if (m_data == NULL)
{
data = new char[1];
*data = '\0';
}
else
{
data = new char[strlen(m_data) + 1];
if (data != 0) // 检测内存是否分配成功
strcpy(data, m_data);
}
}
String::String(const String &other)
{
if (other.data == NULL)
{
data = new char[1];
*data = '\0'; // 如果被拷贝对象为空,把本对象设置为空,并设置结束标志符
}
else
{
data = new char[strlen(other.data) + 1];
if
手动编写String类(C++)
最新推荐文章于 2022-09-04 16:46:51 发布
本文详细介绍了如何在C++中从头开始手动编写一个String类,涵盖了字符串的基本操作和内存管理,包括构造函数、赋值操作符、拷贝构造函数等关键点。
摘要由CSDN通过智能技术生成