- 基础知识
- 对计算机的理解
- 对技术的热情
- 思维能力
- 实践经验
- 了解平凡类型或者说 trivial 类型么
- 谈谈你对指针的理解
- 成员函数通过什么来区分不同对象的成员数据?为什么它能够区分?
- 虚函数的作用以及实现方法(虚表)
- 了解迭代器么?什么情况下,何种容器的哪些迭代器会失效
- 解释一下啥是 RAII
- 堆和栈的区别,本质上呢?
- 为什么带有虚函数的类的析构函数一般也要是虚函数
- 讲一下 hash 表的大概结构
- 了解左值和右值么?了解拷贝和移动语义么?
- 阐述一下动态库和静态库的区别
- 了解宏么,大致讲一下宏的原理
- 了解模板么,大致讲一下模板的原理(实例化)
- 了解 CRTP 么
- 函数模板和类模板的区别,变量模板呢
- C++编译器自动为类产生哪些缺省函数?
- 关注 C++版本的变化么,讲一个你用上的新特性
- 解释一下 inline 关键字的作用(linkage)
- 解释一下为什么 include 头文件能够使用其他文件中定义的类和函数?
- 讲一下预编译阶段,编译器的工作
- extern C 有什么作用?
- 大致描述一下构建 C++项目的过程 (预编译/(模板实例化)/编译编译单元/链接各个编译单元及库)
- C++里如何实现单例模式(local static)
- 什么是原子操作
- 简单讲一下 C++ atomic 6 种内存序
- 说说内存碎片产生的原因,如何解决
- 为什么需要内存对齐
- map 和 unordered_map 之前对比,什么情况下选用哪个?
- 讲一下 lambda 的等效实现
- 了解 SFINAE 么
- 讲一下 auto 的推导规则
- 你现在所接触的技术领域中,你最喜欢的是什么,为什么?
- 什么是多态?了解动态多态/静态多态的区别么?动态多态的等效实现?
- 了解 ECS 么?ECS 较之传统的 Object 类继承的范式有何优点?(缓存命中问题)
- 阐述一下你所认为的容器的共性或者说特点 : 资源管理/内存管理/迭代器/泛型/接口/抽象分层
- 如果让你实现一种数据结构容器,这个类要怎么设计
- 如何设计一个通用的状态机系统,可以给定状态并跳转,有哪些设计思路 : 静态/动态
- 如何实现一个 C++ 插件系统
- 如何实现 QT 中的信号、槽,有哪些思路?
- 如何实现空间管理管理功能(八叉树、BST)
- 如何实现一个 MVVM 系统,有哪些需要注意的点
- 使用过 git 和 github 么,讲讲常用的工作流(ci, mr)
- 了解单元测试么,编写过单元测试么,单元测试的粒度如何把握
- 如果容器的迭代器出现内存问题,应该怎么调试 : 判断问题发生的原因/是外部修改/或是迭代器失效/或是生命周期问题/或是多线程问题
- 讲一个你印象最深的调试经历,如果没有,讲一下你调试的一般方法
- 你的项目中涉及多线程问题么?你是如何解决的?
- 如果项目出现内存相关崩溃,应当如何排查?