C++中的指针型句柄和智能指针的比较

2025-05-20 00:07:03
推荐回答(1个)
回答1:

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