C++从入门到入土第十篇:string模拟实现
Posted 李憨憨_
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++从入门到入土第十篇:string模拟实现相关的知识,希望对你有一定的参考价值。
string模拟实现
类的成员
传统写法
1.构造函数
正确写法:
这才是一个空的string类对象,字符串的内容为空,创建的对象才有一个有效的地址;
但是一般情况下我们都会写一个带缺省值的构造函数;
2.析构函数
3.拷贝构造
这就是浅拷贝所造成的的问题,浅拷贝只拷贝了指针的地址,而没有拷贝指针所指向的内容
深拷贝不仅拷贝了指针,而且拷贝了指针指向的内容;
而且深拷贝开辟了一块新的空间将原来的内容拷贝了一份,这样的话如果我去释放空间,只会释放我自己开辟的这一块空间而不会去释放原有的那一块空间,所以各自释放都只会释放一次,就不会有多次释放的问题;
4.赋值运算符
现代写法
1.构造函数
2.析构函数
3.拷贝构造
与传统写法不同的地方就在于拷贝构造函数
这里的初始值一定要赋为空值,否则交换之后的临时对象就会成为随机值,在释放空间的时候就会出现问题;
4.赋值运算符
以上是关于C++从入门到入土第十篇:string模拟实现的主要内容,如果未能解决你的问题,请参考以下文章