1.基础语法与语言特性
C++ 中指针,引用,数组 的区别是什么?各自的使用场景?
指针: 引用: 数组:指向第一个元素的指针
可为空 必须绑定对象
可随时指向其他对象 不能更换绑定对象
使用*解引用 和普通变量一样使用
手动管理生命周期 更加安全和简介解释一下
virtual
,override
,final
,const
的作用与用法。什么是 RAII?它如何帮助资源管理?
请简述
std::move
和std::forward
的区别及使用场景。
2. ⚙️ 性能与内存优化
1. 游戏中出现卡顿,你如何定位和优化问题?
- 主线程阻塞(I/O,资源加载)
- GC/内存碎片化
- 大量对象更新
- 不合理的Tick 顺序
如何实现一个内存池?适合用在哪些场景?
内存池目的:减少频繁的new/delete的开销和碎片
·维护一个连续的大内存 数组
·维护一个空闲链表,链表将所有的对象链接起来,对象的内存位置在数组里
· 分配时从链表中创建,内存位置在位于数组,释放时归还列表请实现一个简单的对象池(Object Pool)模板类。
请说说 cache-friendly 编码风格的一些例子。