复制的指针难道也可以用delete?
C++ primer 422页在描述智能指针的时候定义下面这个类:
int *p=new int(42);
class U_pter{
friend class Hasptr;
int *ip;
size_t use;
U_ptr(int *p): ip(p),use(1) {}
~U_ptr() (delete ip;} ///////////这个可以delete吗??
}
我的疑惑就在注释那行, 指针ip是通过复制p得到的,但是析构函数中却用了delete对ip进行操作,这样可以吗?(delete不是智能释放new分配的对象吗?)
[解决办法]
重要的是指针是否指向new 分配的空间.