知识整理1

C++的深拷贝和浅拷贝

  浅拷贝也叫位拷贝(bitwise assignment),意思就是将一个对象的内存映像按位原封不动的复制给另一个对象。

  如果字段是值类型的,则对该字段执行逐位复制;如果字段是引用类型,则复制引用但不复制引用的对象。

  如果改变目标对象中引用型字段的值他将反映在原是对象中,也就是说原始对象中对应的字段也会发生变化。因为它们指向的是同一份内存。

  

  深拷贝也叫值拷贝(value assignment),它会将一个对象的值全部复制给另一个对象,包括引用类型的对象里的值。

 

  如果没有自定义拷贝构造函数和赋值函数,则系统会创建默认的复制构造函数和赋值函数,但系统创建的默认函数只会执行“位拷贝”。

  如果一个类拥有资源,当这个类的对象发生复制过程的时候,资源重新分配,这个过程就是深拷贝,反之,没有重新分配资源,就是浅拷贝。

  这是参考的网页:

  http://blog.sina.com.cn/s/blog_a2aa00d70101gpvj.html

 

posted @ 2016-06-13 17:37  quaws  阅读(209)  评论(0)    收藏  举报