浅拷贝和深拷贝

来源:互联网 发布:淘宝客如何设置推广位 编辑:程序博客网 时间:2024/04/30 07:58
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];}
                              }                         //////深拷贝    

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

原创粉丝点击