发布网友 发布时间:2022-08-24 19:15
共1个回答
热心网友 时间:2024-11-25 09:31
智能指针每次都是new出来一个智能指针来管理新的指针成员,新的智能指针指向的对象含有指针成员和一个值,每个通过赋值或者拷贝得到的智能指针都指向同一个计数值,所以改变一个所有都改变。而句柄类是一个对象,每个句柄都是不同的对象,如果是用值来计数的话,比如你首先用2个句柄管理相同的对象,起先计数是一样的,改变其中一个句柄的计数值不会改变另外一个,这样管理时就会出错,尤其是析构delete时,你可以改变其中一个计数值,在cout看看,而指针可以防止这个问题出现,因为指向的是同一个计数对象。我也是去年才开始学的c++,回答这个问题也是为了共同学习。。。