深拷贝:需要拷贝类或结构中指针引用的堆资源,保持双份对资源。
浅拷贝:只拷贝类中指针,二者指向统一堆资源。
因此:浅拷贝,默认拷贝构造等会造成隐含的堆资源二次析构。
甚至在一些默认的STL(例如:std::auto_ptr)中,拷贝时删除原来的,新建新的,更会增加产生错误的可能性。
采用boost::smart_ptr可以在一定程度上改善这种情况。
深拷贝:需要拷贝类或结构中指针引用的堆资源,保持双份对资源。
浅拷贝:只拷贝类中指针,二者指向统一堆资源。
因此:浅拷贝,默认拷贝构造等会造成隐含的堆资源二次析构。
甚至在一些默认的STL(例如:std::auto_ptr)中,拷贝时删除原来的,新建新的,更会增加产生错误的可能性。
采用boost::smart_ptr可以在一定程度上改善这种情况。