浅拷贝和深拷贝

原创 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];}
                              }                         //////深拷贝    

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

内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:浅拷贝和深拷贝
举报原因:
原因补充:

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