d*******n 发帖数: 369 | 1 shared pointer 有个reference count to keep record of how many pointers to an
object. 但是有个地方不明白。比如
std::tr1:shared_ptr int_array(new int);
std::tr1:shared_ptr sec_int_array = int_array;
我看了一下shared_ptr的实现,对于上面的第二句,sec_int_array的reference count
是变成2了,但是好像int_array没变。 对于int_array他仍然认为只有他自己指向这
个int array. 这种inconsistancy 不对吧? 当ini_array变成0是,他会delete the
array too early, right? 因为还有sec_int_array指向它。
谁给解释解释 |
t****t 发帖数: 6806 | 2 你实现看错了吧...
an
count
【在 d*******n 的大作中提到】 : shared pointer 有个reference count to keep record of how many pointers to an : object. 但是有个地方不明白。比如 : std::tr1:shared_ptr int_array(new int); : std::tr1:shared_ptr sec_int_array = int_array; : 我看了一下shared_ptr的实现,对于上面的第二句,sec_int_array的reference count : 是变成2了,但是好像int_array没变。 对于int_array他仍然认为只有他自己指向这 : 个int array. 这种inconsistancy 不对吧? 当ini_array变成0是,他会delete the : array too early, right? 因为还有sec_int_array指向它。 : 谁给解释解释
|
d*******n 发帖数: 369 | 3 en.是我看错了。shared_ptr composes a pointer to a 'smart' like pointer
【在 t****t 的大作中提到】 : 你实现看错了吧... : : an : count
|