某日二师兄参加XXX科技公司的C++工程师开发岗位第19面:
面试官:什么是智能指针?
二师兄:智能指针是C++11引入的类模板,用于管理资源,行为类似于指针,但不需要手动申请、释放资源,所以称为智能指针。
面试官:C++11引入了哪些智能指针?
二师兄:三种,分别是
shared_ptr、unique_ptr、和weak_ptr。面试官:说一说三种指针的特征及用途。
二师兄:好的。
shared_ptr使用了引用计数(use count)技术,当复制个shared_ptr对象时,被管理的资源并没有被复制,而是增加了引用计数。当析构一个shared_ptr对象时,也不会直接释放被管理的的资源,而是将引用计数减一。当引用计数为0时,才会真正的释放资源。shared_ptr可以方便的共享资源而不必创建多个资源。

二师兄:
unique_ptr则不同。unique_ptr独占资源,不能拷贝,只能移动。移动过后的unique_ptr实例不再占有资源。当unique_ptr被析构时,会释放所持有的资源。

二师兄:
weak_ptr可以解决<

最低0.47元/天 解锁文章
267

被折叠的 条评论
为什么被折叠?



