首先回顾点知识点(以下是我自己的想法,如有错误,请在评论区多多指正):
1.如果一个内置指针被别的指针接管资源,那么它必须置于安全析构状态(nullptr或者0都可以)
2.如果一个容器被接管资源,那么容器要执行clear(),清理自己的元素(c++primer5th就是这么做的)
3.如果是一个内置类型或者string类型,被接管了什么也不用管。
4.如果析构的时候需要利用或者改变内置指针的值,此时一定要衡量好,是否这个内置指针可能在代码中被析构过,如果有那么必须检测此时这个指针是否为空(前面析构完的都置为nullptr)
5.移动构造函数是接管资源,如果是类似指针指针的类,此时引用计数不变。
6.移动赋值运算符也一样,只是接管资源,应用计数部分的内存也接管即可,不用增加也不用减少。
7.释放资源或者是改变资源的值得时候,一定要判断:这个资源的值是否可能被释放.如果出错,是及难找到错误的,例子就是hasptr类指针版本的网上的随书源