Chinaunix首页 | 论坛 | 博客
  • 博客访问: 376377
  • 博文数量: 124
  • 博客积分: 2911
  • 博客等级: 少校
  • 技术积分: 1050
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-15 15:57
文章分类

全部博文(124)

文章存档

2012年(6)

2011年(26)

2010年(92)

我的朋友

分类: C/C++

2011-08-16 22:22:46

引用是不可改变的指针,指针是可以改变的引用

自我理解:
    浅拷贝类似COW中的第一步:b指向a的内存地址(逻辑上独立,物理上不独立)
    深拷贝类似COW中的第二步:b复制了a的资源,并写入(物理上已经独立)


C++ 的构造/析构/赋值/拷贝函数
http://blog.chinaunix.net/space.php?uid=21411227&do=blog&cuid=2244350

很赞:

好文章:

位拷贝/值拷贝:浅拷贝/深拷贝


以string 为例
 string *p,*q;
 p=new string("asd"); 
 如果是浅拷贝,那么 q=p; 
 如果是深拷贝, q=new string("asd"); 

 浅拷贝 就是相当于只是让指针指向同一块内存区域,一旦该内存区域被释放 那么 所有指向这个内存区的 指针(p和q)都会无效 但是深拷贝 是另外再分配一块内存区域,并且复制起内容,如果q指向的内存区域 被释放,p指向的内存区域不会首影响 和拷贝构造函数没什么关系 只不过 如果你要重写拷贝构造函数 或者是 =函数,或者其他自定义的函数 则要根据情况选择是用深拷贝还是用浅拷贝的方式去 写


阅读(1276) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~