📡
首页
🏢
企业
📚
考试
📖
攻略
📰
日报
👤
我的
校招宝-应届生校园招聘情报站
聚合秋招/春招/实习/提前批
面试真题
C++ · 中等 · 西山居
智能指针相关面试题,shared_ptr底层实现
中等
C++
🎤 西山居
参考答案
结论:shared_ptr底层由一个原生指针和一个指向控制块的指针组成。原理:控制块含强引用计数、弱引用计数、删除器、分配器;对象构造时(或make_shared)分配控制块,强计数初1;拷贝shared_ptr时强计数原子加1,析构时减1,归零则调用删除器释放对象;弱计数归零释放控制块。make_shared将对象与控制块一块分配减少开销。weak_ptr共享控制块但不增加强计数,lock()尝试提升。注意循环引用时强计数不降,内存泄漏。
题目整理自公开面经,答案由校招宝自研生成,仅供参考
📚 更多「C++」面试真题
vector底层原理实现与扩容机制
简单
除了 `inline`,还能怎么设置内联函数?
简单
多态+内存对齐
中等
非虚函数和虚函数的调用原理
中等
构造函数抛出异常的问题
中等
简述智能指针种类以及使用场景
中等
菱形继承的内存模型,虚拟继承后会怎么样
困难
内联函数定义与宏定义的区别?
简单
查看全部「C++」真题 ›
‹ 返回面试真题库
首页
企业
考试
攻略
日报
我的