1. 首页
  2. 数据库
  3. 其它
  4. c++中深浅拷贝以及写时拷贝的实现示例代码

c++中深浅拷贝以及写时拷贝的实现示例代码

上传者: 2020-12-22 00:38:37上传 PDF文件 76.36KB 热度 33次

但是存在很大的缺陷:①一旦对s2进行操作,s1的内容也会改变;②析构时先析构s2,再析构s1,但是由于s1,s2指向同一片空间,会导致一片空间的二次析构导致出错。不论是否对s2进行操作,都会拷贝一片相同大小的空间以及内容下来。写时拷贝:引入一个计数器,每片不同内容的空间上都再由一个计数器组成,在构造第一个类指向时,计数器初始化为1,之后每次有新的类也指向同一片空间时,计数器加价;在析构时判断该片空间对应计数器是否为1,为1则执行清理工作,大于1则计数器-1。如果有需要进行增删等操作时,再拷贝空间完成,有利于提高效率。

用户评论