d********t 发帖数: 9628 | 1 假定有两个smartpointer A和B,
B是由Acopy来的,那么count在A下面是1,在B下面是2.
那么看起来必须要先destruct B然后A才能保证pointer正确delete,是不是?
谢谢! |
a********m 发帖数: 15480 | 2 refptr? 凉粉拷贝的话应该都是1吧。一份的话应该是2。delete 顺序应该没有关系。
【在 d********t 的大作中提到】 : 假定有两个smartpointer A和B, : B是由Acopy来的,那么count在A下面是1,在B下面是2. : 那么看起来必须要先destruct B然后A才能保证pointer正确delete,是不是? : 谢谢!
|
d********t 发帖数: 9628 | 3
不是啊,copy constructor里面就有++*ref_count;这个显然只能加自己的count,不
能加argument的
【在 a********m 的大作中提到】 : refptr? 凉粉拷贝的话应该都是1吧。一份的话应该是2。delete 顺序应该没有关系。
|
B******5 发帖数: 4676 | 4 谁的copy constructor,同样地址smart pointer就一个吧
【在 d********t 的大作中提到】 : : 不是啊,copy constructor里面就有++*ref_count;这个显然只能加自己的count,不 : 能加argument的
|
d********t 发帖数: 9628 | 5 No.拥有同一地址的SM可以有很多个
【在 B******5 的大作中提到】 : 谁的copy constructor,同样地址smart pointer就一个吧
|
r*******g 发帖数: 1335 | 6 cracking code interview上面那个吗
按照我的理解,B原来那个 count为0,A为2.B的原来那个空间被删除,需要重载=操作
符。
【在 d********t 的大作中提到】 : 假定有两个smartpointer A和B, : B是由Acopy来的,那么count在A下面是1,在B下面是2. : 那么看起来必须要先destruct B然后A才能保证pointer正确delete,是不是? : 谢谢!
|
w******e 发帖数: 199 | 7 ref_count是pointer,指向同一个地方
所以都一起数的。。
【在 d********t 的大作中提到】 : No.拥有同一地址的SM可以有很多个
|
d********t 发帖数: 9628 | 8 I see.
Thanks!
【在 w******e 的大作中提到】 : ref_count是pointer,指向同一个地方 : 所以都一起数的。。
|
B******5 发帖数: 4676 | 9 我也这么觉得,表达不清或许。。。
【在 w******e 的大作中提到】 : ref_count是pointer,指向同一个地方 : 所以都一起数的。。
|