C++自己实现一个String类(构造函数、拷贝构造函数、析构函数和字符串赋值函数) ...
需要实现的基本功能:构造函数 拷贝构造函数 赋值函数 析构函数. 以前合称big three, 现在叫做copy control 改进版: 详情参考ref 剑指offer第一题 上面的拷贝构造函数有个潜在隐患:String类涉及到内存分配操作,这个new操作可能会抛出异常。 解决方法: 可以通过 copy and swap 的策略来实现。其原理很简单:即先对打算修改的对象做出一个副本 copy , ...
2015-08-03 15:28 0 2306 推荐指数:
C++自己实现一个String类(构造函数、拷贝构造函数、析构函数和字符串赋值函数) ...
C++默认的拷贝构造函数和赋值构造函数都是浅拷贝,所以当遇到成员含有指针变量时,需要自己实现深拷贝。 写个简单的String就是很好的例子。 参考链接:https://zhuanlan.zhihu.com/p/62290636 ...
一般面试,已知类String的原型为: 类的实现: 完整版: 一 整体框架 除了以上四个必须的函数,这里还实现了一些附加的内容。 若干个运算符重载,这里的几个是常见的运算符,可以加深对String的认识和运算符重载的理解。 两个常用的函数,包括 ...
1.前言 最近看了下《C++Primer》,觉得受益匪浅。不过纸上得来终觉浅,觉知此事须躬行。今天看了类类型,书中简单实现了String类,自己以前也学过C++,不过说来惭愧,以前都是用C来写程序,学的C++基本都忘记了,也说明自己以前对C++的理解不够深入。基于这些,觉得有必要动手来写 ...
string类底层是一个字符串指针 1、类结构定义 #include <iostream> #include <cstring> using namespace std; class CMyString { private: char* m_pDate ...
...
C++面试或者笔试的时候经常遇到这样一个问题,就是自己实现一个string类。 本人总结自己的面试经验以及参考网上各位网友的总结,总得来说常见的主要实现的包括以下几个方面(如有不如,欢迎补充) 常见:普通的构造函数、拷贝构造函数、析构函数、字符串的链接即‘+’号运算符重载、字符串赋值即‘=’号 ...
最近在制定一个网络文件交互的协议,协议制订上采用了HTTP协议的方式,因此需对协议数据进行一个分割处理;虽然使用String的Split方法可以达到目的,但通过反编译查看其代码后发现实现相对复杂,性能上也不怎样;于是自己实现一个简单的字符分割处理类,在实现后和String的Sqlit ...