如果一个类拥有资源(堆或者是其他系统资源),当这个类的对象发生复制过程时,资源重新分配,这个过程就是深拷贝;反之对象存在资源,但复制过程并未复制资源的情况视为浅拷贝。
浅拷贝,在释放资源时,可能会善生资源归属不清的情况,导致程序出错。因为原变量与复制变量指向同一块内存地址,当调用析构函数释放原变量地址时,复制变量若是指针的话,则会成为野指针。
如果一个类拥有资源(堆或者是其他系统资源),当这个类的对象发生复制过程时,资源重新分配,这个过程就是深拷贝;反之对象存在资源,但复制过程并未复制资源的情况视为浅拷贝。
浅拷贝,在释放资源时,可能会善生资源归属不清的情况,导致程序出错。因为原变量与复制变量指向同一块内存地址,当调用析构函数释放原变量地址时,复制变量若是指针的话,则会成为野指针。