自己实现c++中string 类
C++ 实现 string 自己
2023-09-11 14:14:05 时间
class String { public: String(const char *str = NULL);// 普通构造函数 String(const String &other);// 拷贝构造函数 ~String(void);// 析构函数 String & operator = (const String &other);// 赋值函数 private: char *m_data;// 用于保存字符串 };
//普通构造函数 String::String(const char *str) { if (str == NULL) { m_data = new char[1];// 得分点:对空字符串自动申请存放结束标志'\0'的,加分点:对m_data加NULL判断 *m_data = '\0'; } else { int length = strlen(str); m_data = new char[length + 1];// 若能加 NULL 判断则更好 strcpy(m_data, str); } } // String的析构函数 String::~String(void) { delete[] m_data; // 或delete m_data; } //拷贝构造函数 String::String(const String &other)// 得分点:输入参数为const型 { int length = strlen(other.m_data); m_data = new char[length + 1];// 若能加 NULL 判断则更好 strcpy(m_data, other.m_data); } //赋值函数 String & String::operator = (const String &other) // 得分点:输入参数为const型 { if (this == &other)//得分点:检查自赋值 return *this; if (m_data) delete[] m_data;//得分点:释放原有的内存资源 int length = strlen(other.m_data); m_data = new char[length + 1];//加分点:对m_data加NULL判断 strcpy(m_data, other.m_data); return *this;//得分点:返回本对象的引用 }
高级版参考:https://blog.csdn.net/u010700335/article/details/40979037
相关文章
- C++ 修改指定进程 PEB 中路径和命令行信息实现进程伪装
- C++ 根据分隔符分割字符串为 vector 字符串数组
- C++windows内核编程笔记day11 win32静态库和动态库的使用
- C++ 数据的封装 初始封装
- Word处理控件Aspose.Words功能演示:使用 C++ 处理 Word 文档中的注释
- C++ 星号* 与 引用&
- 在C++中可以用3种方法访问一个字符串
- C++中用new和不用new定义类的对象的区别解答
- C++new和delete实现原理(汇编解释)
- C++头文件中预编译宏的目的
- 循环队列实现(C++) Ring Buffer
- 《C++多线程编程实战》——2.4 进程的实现
- 《数字图像处理与机器视觉——Visual C++与Matlab实现(第2版)》——2.5 图像的显示
- 《数字图像处理与机器视觉——Visual C++与Matlab实现》——0.2 数字图像处理与识别
- OpenCV使用pthread实现多线程加速处理图像(C++)
- 【C++】简单模拟实现string(底层实现)
- 基于C++实现存储器的分配与回收算法【100010768】
- 基于C++实现的指令流水仿真程序【100010673】
- 基于QT(C++)实现查找算法图形化(数据结构课程设计)【100010640】
- 基于C++ MCF 实现(图形界面)通讯录管理系统【100010625】
- 基于QT(C++)实现用户界面系统【100010114】
- 基于C++开发的(控制台)学生管理系统【100010039】
- 基于C+++Mysql实现(WinForm)校友管理系统(面向对象)【100010007】
- 理清gcc、libc、libstdc++的关系(libstdc++是gcc搞的,libc++是llvm搞的,他们都是C++标准库的实现)
- C&C++函数实训(国防科大)
- C++组合通信
- C++ OTL MySQL(Windows/Linux) V8.1
- C/C++可变参数
- 仿真算法数据结构与算法 C++实现
- C++ printf with std::string