对浅拷贝、深拷贝、写时拷贝的简单认识
浅拷贝 也称位拷贝或值拷贝。如果对象中管理资源,编译器只是将对象中的值拷贝过来,就会导致多个资源共享一份资源,当一个对象销毁时就会将该资源释放,而这时另一些对象不知道该资源已经被释放,以为还有效,所以,对资源继续操作,就会发生访问违规的情况 比如在模拟实现string类时,构造函数中管理了资源,拷贝构造、赋值运算符重载用浅拷贝的方式会导致资源多次释放,也会导致内存泄漏 我们只是将s1的值放到s2中,这样就会导致s1、s2在底层共用同一块内存空间,当出了作用域要释放时,s3释放成功,当s1释放时,空间已经被s3释放了,s1的指向就成了野指针从而导致资源释放多次出现问题。没有重新开辟空间,对象之前
用户评论