浅拷贝和深拷贝
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];}
                              }                         //////深拷贝    

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

阅读更多
文章标签: class
个人分类: c++
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

浅拷贝和深拷贝

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭