首先,先给大家提个醒。在网上的随书源代码里关于hasptr类的类指针版本编写的移动构造函数、移动赋值运算符、和析构函数部分是有错误的。大家可以把hasptr累指针版本(里面带移动构造函数和移动赋值运算符部分)可以运行下,g++编译环境发现core dumped错误。原因是:在代码中途有的对象的use和ps所指的内存已经被释放了,所以在析构函数中再次直接释放use和ps就是错的了。正确应该在中途每个地方use和ps被接管后都置为nullptr,然后在析构函数中必须首先判断use和ps是否是nullptr,然后再释放。
************************************************************************************************************************************************
对nullptr指针,执行delete操作会引发错误,g++提示:core dumped
************************************************************************************************************************************************
习题13.1拷贝、赋值