对深拷贝及浅拷贝的理解

来源:互联网 发布:设计优化 编辑:程序博客网 时间:2024/06/13 12:21

1.两个拷贝之间区别主要是用于对象数据之间的拷贝!

2.区别

没指针:

  深拷贝和浅拷贝没什么区别;

有指针:

  浅拷贝:即对象的默认拷贝函数,只是将指针的地址拷贝给对象,两个变量同时指向一个地址,这样在析构的时候必然会导致程序崩溃;

class A{public:    A()    {        m_Data = new char[100];    }    ~A()    {        delete []m_Data;        m_Data = NULL;    }protected:private:    char* m_Data;};int _tmain(int argc, _TCHAR* argv[]){    A a;    A b(a);    return 0;


深拷贝:即要自定义拷贝函数,将指针new一段新内存保存起来;这样析构也不会崩溃;


0 0