对象的复制

C++中自带有一个复制构造函数,即:

MyClass test1;
MyClass test2 ( test1 );
此时,test2对象会复制test1来进行初始化,该自带的构造函数为MyClass ( MyClass & )  // 注意参数的引用是必须的
 
C++中复制对象有几种方法:
  1. MyClass test2 ( test1 );           //即声明时使用复制构造函数
  2. test2 = test1                           //直接赋值,亲测可用,而且test2不会变成test1的引用,两个对象在之后的使用中完全无联系(除了浅复制过去的指针)
  3. 。。
【注意】
  1. 复制时,对象中的指针型属性值也会复制,从而造成两个对象中的指针指向同一个地址,即浅复制
  2. 要想复制时,不导致新对象中的指针和引用还指向愿对象的内存空间,需要使用深复制,即,自定义复制构造函数 MyClass ( MyClass & ),对新变量重新申请内存空间,然后用原对象中的数据赋值
 
 
【PS】要和java区别开,java的对象名是具有引用效果的,比如参数传递
posted @ 2016-05-22 15:41  漫游的陈小飞  阅读(93)  评论(0编辑  收藏  举报