问一个smart pointer的问题# JobHunting - 待字闺中d*t2011-11-21 08:111 楼假定有两个smartpointer A和B,B是由Acopy来的,那么count在A下面是1,在B下面是2.那么看起来必须要先destruct B然后A才能保证pointer正确delete,是不是?谢谢!
a*m2011-11-21 08:112 楼refptr? 凉粉拷贝的话应该都是1吧。一份的话应该是2。delete 顺序应该没有关系。【在 d********t 的大作中提到】: 假定有两个smartpointer A和B,: B是由Acopy来的,那么count在A下面是1,在B下面是2.: 那么看起来必须要先destruct B然后A才能保证pointer正确delete,是不是?: 谢谢!
d*t2011-11-21 08:113 楼不是啊,copy constructor里面就有++*ref_count;这个显然只能加自己的count,不能加argument的【在 a********m 的大作中提到】: refptr? 凉粉拷贝的话应该都是1吧。一份的话应该是2。delete 顺序应该没有关系。
B*52011-11-21 08:114 楼谁的copy constructor,同样地址smart pointer就一个吧【在 d********t 的大作中提到】: : 不是啊,copy constructor里面就有++*ref_count;这个显然只能加自己的count,不: 能加argument的
d*t2011-11-21 08:115 楼No.拥有同一地址的SM可以有很多个【在 B******5 的大作中提到】: 谁的copy constructor,同样地址smart pointer就一个吧
r*g2011-11-21 08:116 楼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,是不是?: 谢谢!