腾讯C++面试题及详细答案(真实场景版).docx

腾讯C++面试题及详细答案(真实场景版).docx

腾讯C++面试题及详细答案(真实场景版)

一面(基础+项目+算法,高频必考题)

1.请讲一讲智能指针(shared_ptr/unique_ptr/weak_ptr)的实现原理,以及循环引用怎么解决?

具体来说:

shared_ptr:是共享所有权的智能指针,底层有两个指针,一个指向实际对象,一个指向引用计数(通常是堆上的int变量)。每次拷贝shared_ptr,引用计数+1;析构时,引用计数-1,当计数减到0,才释放对象内存。这里要注意,引用计数是线程安全的(内部会加锁或用原子操作),但对象的读写不是线程安全的。

unique_ptr:是独占所有权的智能指针,不能拷贝,只能移动(move

文档评论(0)

1亿VIP精品文档

相关文档