对深拷贝及浅拷贝的理解

xiaoxiao2021-02-28  113

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一段新内存保存起来;这样析构也不会崩溃;

转载请注明原文地址: https://www.6miu.com/read-70733.html

最新回复(0)