关闭

浅拷贝和深拷贝

171人阅读 评论(0) 收藏 举报
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];}
                              }                         //////深拷贝    

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

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:19669次
    • 积分:327
    • 等级:
    • 排名:千里之外
    • 原创:10篇
    • 转载:28篇
    • 译文:0篇
    • 评论:1条
    文章分类
    最新评论