一、自我介绍二、C++内存对齐,计算三个结构体的大小三、介绍多态,虚函数、虚函数表、虚函数表指针、虚析构函数(主要就是考查内存布局)、构造函数能否为虚函数?为什么四、多继承中多个虚函数指针是存放在数组中还是单独的指针变量(之前只大致扫了一下多继承/菱形继承问题,没想到问这么细)五、map底层原理,是否有序,介绍一下红黑树(根叶黑/不红红/黑路同),查找/删除/插入的时间复杂度(O(logn))(习惯性直接回答成unordered_map了,重新回答了,笑死)六、内存泄漏是什么,如何避免、检查、解决(例如析构函数调用前发生程序异常,造成内存泄漏等等,代码逻辑考虑准确、RAII手法/智能指针、valgrind)七、介绍一下智能指针:shared_ptr/weak_ptr/unique_ptr/scope_ptr,各自特点、区别、应用场景八、手写shared_ptr,包含六个函数:无参构造、有参构造、拷贝构造、移动构造、赋值运算符重载、析构函数九、测试上面的所有函数,打印引用计数值(测试析构的时候,面试官给了提示)补充:问多态的时候,也问到了一些子类、父类指针的类型转换/直接对象转换周三面,周日感谢信;面试过程中感觉良好,都是纯C++八股,被挂了还蛮沮丧找不到暑假实习了,挂麻了