- 指针数组与数组指针
- 虚函数指针大小
- 纯虚函数如何定义
- c++类的默认函数有哪些
- 如何通过指针访问类的私有变量
- std::forward和std::move的区别
- 深拷贝和浅拷贝的区别以及具体实现
- vector扩容机制,以及1.5倍扩容因子的优点
- c++ delete空指针会发生什么
- 析构函数通常什么情况下不会发生
- 智能指针是否线程安全
- 如何防止一些对象的拷贝进行
- c++编程如何避免死锁的发生
- dll中全局变量如何被多个进程使用
- this指针的含义
- c++类声明的对象占用的内存空间,大致里面有哪些内容
- int和long类型的区别
- const修饰符常见的使用场景
- 一个局部变量通过函数返回值返回引用会造成什么问题
- 析构函数什么情况下要定义为虚函数
- dynamic_cast不通过会发生什么
- c++编译链接过程的描述
- 链接库的方式和种类
- dll如何被多个不同程序共享
- 函数中堆和栈的区别
- 栈上一半存哪些东西
- 函数的返回值保存在哪里
- malloc和new的区别
- new除了分配内存之外的其他作用
- STL容器描述
- 移动构造函数和拷贝构造函数的区别
- 左值和右值的概念
- 智能指针有哪几种,各自功能
- c++智能指针实现引用计数的原理
- 继承和多态的特点,含义和不同之处
- STL库中有哪些cast
- 基类和子类的转化是否安全
- c++有哪些新的语法特性
- c++程序有哪些段,全局变量在哪个段中
- 多线程的中线程的栈是在哪里,他们的堆和栈是否相互隔离
- 线程之间共享和不共享的东西
- set和map的区别
- 遍历map得到的结果存在哪些情况
- Linux一个进程里面有几个栈
- 发生系统调用的时候如何发生栈切换
- Linux内核空间是被所有程序共享的吗
- 设计模式了解吗
- 死锁产生的几个条件
- Linux I/O模型
- select、poll、epoll的区别
c++如何完成一个对象的序列化
图形学基础
AABB和OBB包围盒分别是什么
- 如何找到二维空间中最近的点(非暴力)
- 旋转的表示方法有几种,各自的优缺点
- 光栅化渲染管线基本流程
- 光线追踪的原理及大致流程
- 遮挡剔除算法种类
- 如何绘制大量相同的物体(如草地)
- 微表面模型(PBR)原理以及和实际应用中纹理、材质、贴图等对应关系
- 阴影生成的方法(硬阴影、软阴影)有哪几种,各自优缺点
- 着色器种类和各自需要完成的工作
- 后处理了解吗
- 抗锯齿方法的种类,各自优缺点
- Gamma校正了解吗
- GBuffer里面存储哪些数据
- 游戏引擎的组成部分
- 遮挡查询算法的缺点
-
opengl相关
opengl中的缓存对象
- opengl和显存交互的手段
attribute、uniform、texture是用来做什么的
游戏开放回答问题
了解什么搜索算法(寻路相关)
- 如果一个游戏场景出现性能问题,如何进行排查
- 一个1280*720分辨率的图片,如何让其适配不同分辨率大小的屏幕,使得原本图片上一些点的坐标不会发生偏移
- 对象池了解吗,实现的原理
- 如何检测客户端和服务器端网络不好的通信状态
- 客户端掉线如何进行重连游戏战局
- 单例模式在游戏开发中的实际应用,缺点是什么
- 游戏客户端热更新机制
- 游戏客户端如何多线程下载热更新补丁,及下载完后的校验情况
热更新下载过程中需要注意哪些问题(热更新与实习的项目有关)
算法题
- 剑指offer 022 链表是否存在环
- leetcode 85 最大矩形
- leetcode 232 用队列实现栈
- 自己动手写一个图的数据结构,稀疏矩阵关系图
- 手动构造一个哈希表
- 遍历多叉树结点,找到一条最长的递增路径