浅拷贝和深拷贝

原创 2011年01月17日 09:11:00
class   A
{
    int*   p;
public:
      A(){   p=new   int[5];}
      A(const&   a):p(a.p){}           //////浅拷贝   应该尽量避免
      A(const&   a){   p=new   int[5];
                                for(int   i=0;i <5;++i)
                                {   p[i]=a.p[i];}
                              }                         //////深拷贝    

浅拷贝速度快,但是不安全,深拷贝安全,但速度慢,折中的方法是引用计数和写时复制。
class   A
{
    int*   p;
public:
      A(){   p=new   int[5];}
      A(const&   a):p(a.p){}           //////浅拷贝   应该尽量避免
      A(const&   a){   p=new   int[5];
                                for(int   i=0;i <5;++i)
                                {   p[i]=a.p[i];}
                              }                         //////深拷贝    

浅拷贝速度快,但是不安全,深拷贝安全,但速度慢,折中的方法是引用计数和写时复制。
class   A
{
    int*   p;
public:
      A(){   p=new   int[5];}
      A(const&   a):p(a.p){}           //////浅拷贝   应该尽量避免
      A(const&   a){   p=new   int[5];
                                for(int   i=0;i <5;++i)
                                {   p[i]=a.p[i];}
                              }                         //////深拷贝    

浅拷贝速度快,但是不安全,深拷贝安全,但速度慢,折中的方法是引用计数和写时复制。
class   A
{
    int*   p;
public:
      A(){   p=new   int[5];}
      A(const&   a):p(a.p){}           //////浅拷贝   应该尽量避免
      A(const&   a){   p=new   int[5];
                                for(int   i=0;i <5;++i)
                                {   p[i]=a.p[i];}
                              }                         //////深拷贝    

浅拷贝速度快,但是不安全,深拷贝安全,但速度慢,折中的方法是引用计数和写时复制。
class   A
{
    int*   p;
public:
      A(){   p=new   int[5];}
      A(const&   a):p(a.p){}           //////浅拷贝   应该尽量避免
      A(const&   a){   p=new   int[5];
                                for(int   i=0;i <5;++i)
                                {   p[i]=a.p[i];}
                              }                         //////深拷贝    

浅拷贝速度快,但是不安全,深拷贝安全,但速度慢,折中的方法是引用计数和写时复制。

class   A
{
    int*   p;
public:
      A(){   p=new   int[5];}
      A(const&   a):p(a.p){}           //////浅拷贝   应该尽量避免
      A(const&   a){   p=new   int[5];
                                for(int   i=0;i <5;++i)
                                {   p[i]=a.p[i];}
                              }                         //////深拷贝    

浅拷贝速度快,但是不安全,深拷贝安全,但速度慢,折中的方法是引用计数和写时复制。

相关文章推荐

C#浅拷贝深拷贝

  • 2014年02月27日 14:26
  • 24KB
  • 下载

copy的使用(深拷贝、浅拷贝)

  • 2015年10月27日 15:56
  • 31KB
  • 下载

$.extend中探索深拷贝和浅拷贝

网上这方面的教程比较多,由于上次看了篇错误的教程搞得我迷糊;特意写下这篇笔记,若文中有错误之处,忘路过的朋友及时指出,不想祸害其他朋友了; 首先说明下:深拷贝(深复制)和浅拷贝(浅复制),特地说明怕...

浅析Java中的深拷贝与浅拷贝

  • 2013年04月24日 12:56
  • 2KB
  • 下载

C++深拷贝浅拷贝

  • 2012年05月30日 21:17
  • 119KB
  • 下载

js中的继承——浅拷贝、深拷贝

构造函数的继承 http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_inheritance.html 今...

C++之深拷贝和浅拷贝

  • 2015年09月09日 19:06
  • 128KB
  • 下载

结合实例详解clone()函数,Cloneable接口以及深拷贝与浅拷贝的问题

package job; /** * ps:java中的clone()方法的功用类似于C++中的拷贝构造函数 * 拷贝对象还可以用对象流中转一下获得,需要实现标记型接口Serializabl...

ES6 变量声明与赋值:值传递、浅拷贝与深拷贝详解

ES6 变量声明与赋值:值传递、浅拷贝与深拷贝详解归纳于笔者的现代 JavaScript 开发:语法基础与实践技巧系列文章。本文首先介绍 ES6 中常用的三种变量声明方式,然后讨论了 JavaScr...

类对象的浅拷贝和深拷贝(浅复制和深复制)

浅拷贝(浅复制)        在C++中经常隐式或显式的出现对象的复制。当两个对象之间进行复制时,若复制完成后,它们还共享某些资源(内存空间),其中一个对象的销毁会影响另一对象,这种对象之间的复制...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:浅拷贝和深拷贝
举报原因:
原因补充:

(最多只允许输入30个字)