
c++ 浅拷贝和深拷贝
发布日期:2021-05-06 23:05:09
浏览次数:24
分类:精选文章
本文共 339 字,大约阅读时间需要 1 分钟。
class with point member(带指针的类),一定有copy ctor(拷贝构造)和copy op=(拷贝赋值)
浅拷贝(讲这个概念是为了跟你解释为什么一定要写自己的版本):
如果你不写拷贝构造和拷贝赋值,系统会为你默认生成这两个函数。
而用系统里面默认生成的函数,则会发生下图中a和b的指针都指向“HELLO”,而“WORLD”没有指针指着它(这种情况叫内存泄漏)。
两个指针指向同一块内存也是危险的,因为你通过a改变字符串的时候,b所指的内容也会随之改变。如图:
在编程里面。alias(别名)是一件危险的事情。
深拷贝如下图(拷贝构造的例子)
上图是自己写的拷贝构造函数:调用该函数之后,系统先申请内存,然后把传入的参数拷贝到新申请的空间上,这就是深拷贝。
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2025年03月21日 21时43分32秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
C++中头文件相互包含与前置声明
2021-05-09
JQuery选择器
2021-05-09
MVC中在一个视图中,怎么加载另外一个视图?
2021-05-09
SQL--存储过程
2021-05-09
MVC学习系列5--Layout布局页和RenderSection的使用
2021-05-09
MVC学习系列13--验证系列之Remote Validation
2021-05-09
多线程之volatile关键字
2021-05-09
2.1.4奇偶校验码
2021-05-09
2.2.2原码补码移码的作用
2021-05-09
多线程之Lock显示锁
2021-05-09
ForkJoinPool线程池
2021-05-09
【Struts】配置Struts所需类库详细解析
2021-05-09
Java面试题:Servlet是线程安全的吗?
2021-05-09
DUBBO高级配置:多注册中心配置
2021-05-09
Java集合总结系列2:Collection接口
2021-05-09
Linux学习总结(九)—— CentOS常用软件安装:中文输入法、Chrome
2021-05-09
大白话说Java反射:入门、使用、原理
2021-05-09
集合系列 Set(八):TreeSet
2021-05-09
JVM基础系列第11讲:JVM参数之堆栈空间配置
2021-05-09
MySQL用户管理:添加用户、授权、删除用户
2021-05-09