读书人

复制的指针莫非也可以用delete

发布时间: 2013-06-25 23:45:41 作者: rapoo

复制的指针难道也可以用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 分配的空间.

读书人网 >C++

热点推荐