3-31(string底层实现)

前些天,因为效率低下,去玩了2天,今天回来接着学。

今天主要学习了简单string的实现,以及string的遍历和增删改查的增;

string的简单实现主要包括构造函数、析构函数、拷贝构造函数的实现。

构造函数需要注意的是:1、得注意应该单独开辟一个空间来存放传递的参数,应该在堆上面。2、当不需要传参时,不能使string对象中的指针为nullptr,因为如果对该指针解引用时,会出错,因为空指针不能解引用,所以当不传任何实参时,也应该使其开辟一个字节的空间,来存放\0,表示数组存在。

拷贝构造函数需要注意的是:避免浅拷贝,浅拷贝可能会出现析构2次同一块地址,所以需要深拷贝,深拷贝原理就是开辟一块和被拷贝的对象一样大的空间,delete旧的空间,然后指针指向新开辟的地址,就搞定了。

增需要注意的就是内存不足时,需要开辟新的空间,但是得记住开辟得空间应该比strlen求得的大一个字节,因为得为\0留一个空间。

猜你喜欢

转载自blog.51cto.com/15085121/2678595