📡
首页
🏢
企业
📚
考试
📖
攻略
📰
日报
👤
我的
校招宝-应届生校园招聘情报站
聚合秋招/春招/实习/提前批
面试真题
技术面 + 非技术面高频问题 · 企业真题标题 + 校招宝自研参考答案
面试真题
2508 道
技术岗
641 道
非技术岗
1867 道
当前筛选
52 道
按赛道
技术岗以技术方向细分;非技术岗按「结构化 / 半结构化 / 无领导 / HR / 职能」细分
全部赛道(2508)
技术岗(641)
非技术岗(1867)
按方向/形式
点选即筛,再点「全部」还原
全部(2508)
求职动机(1737)
数据库(114)
C++(85)
Go(82)
Java(69)
网络(65)
操作系统(54)
后端(39)
前端(37)
算法(31)
银行面试(31)
结构化面试(30)
HR面试(27)
运维(22)
其他(17)
行为面试(14)
AI算法(13)
半结构化面试(12)
情景应变(10)
大数据(6)
测试(4)
无领导小组讨论(3)
自我介绍(3)
产品(2)
Python(1)
按难度
简单(29)
中等(52)
困难(4)
按企业
点选查看该公司全部题目
百度(161)
腾讯(139)
通用(87)
阿里巴巴(62)
网易(55)
京东(49)
中国储备粮管理集团有限公司(43)
字节跳动(34)
大华股份(11)
美团(10)
Momenta(8)
小鹏汽车(8)
深信服(8)
Shopee(7)
小米(7)
拼多多(7)
滴滴(7)
虎牙(6)
读书郎(6)
金山(6)
小红书(5)
快手(5)
搜狐(5)
闪送(5)
分类:C++ · 难度:中等
52 道 · 点击进入查看参考答案
中等
C++
auto,auto&,auto&& 的作用和区别
结论:auto按值类型推导,auto&为左值引用,auto&&为转发引用(万能引用);核心要点:1.auto声明变量拷贝初始化,忽略顶层const和引用;2.auto&必须绑定左值,可修改原对象且零拷贝;3.auto&&…
🎤 阿里巴巴
中等
C++
C++多继承是什么?有什么问题?怎么解决的?
多继承指一个派生类同时继承多个基类,可组合多类能力。问题:菱形继承引发数据冗余与二义性,如B、C继承A,D继承B和C,D内含两份A成员,访问A成员时产生歧义。解决:采用虚继承(virtual public),使公共基类在…
🎤 字节跳动
中等
C++
C++多态相关
C++多态相关核心是实现机制:虚函数与虚表。基类声明virtual函数,派生类重写(签名一致);每个含虚函数的类有虚函数表(vtable)存函数指针,对象内含虚表指针(vptr)指向所属类vtable。调用虚函数时经vp…
🎤 字节跳动
中等
C++
C++什么时候生成默认的构造函数?
编译器在需要时合成默认构造函数(无参):1.类有虚函数(需初始化vptr);2.有虚继承(需设虚基类指针);3.基类无默认构造或默认不可访问;4.成员对象无默认构造。若用户已定义任意构造函数,编译器不再合成默认版(可用=…
🎤 百度
中等
C++
C++什么时候生成默认拷贝构造函数?
默认拷贝构造在用户未定义且被调用时由编译器合成,执行成员级浅拷贝。触发场景:同类型对象初始化(A a2=a1;)、函数按值传参、返回非引用对象。合成条件:类无用户拷贝构造;若类含虚函数,合成版会正确复制vptr指向同类型…
🎤 大疆
中等
C++
C++中const和static的使用
结论:const表示只读不可修改,static表示静态存储或类级共享,二者常结合。要点:const修饰变量只读,修饰指针分顶层/底层const,修饰成员函数保证不修改对象;static修饰局部变量延长生命周期至程序结束,…
🎤 网易
中等
C++
C++weak_ptr
结论:weak_ptr是弱引用智能指针,配合shared_ptr使用,不增加引用计数,解决循环引用和临时所有权。要点:1.由shared_ptr构造如auto wp=weak_ptr(sp); 2.不拥有对象,不影响生命…
🎤 字节跳动
中等
C++
const与static关键字的用法,与this指针的关系
结论:const修饰成员函数承诺不修改对象;static表示类级别共享,无this指针。要点:1.const用法:成员变量初始化后不可变;成员函数尾部加const,函数内不能改非static成员,此时this类型为con…
🎤 腾讯
中等
C++
extern的作用,为什么要用extern“C”,extern变量在哪个数据段?
结论:extern用于声明外部链接的变量或函数,表明其定义在其他编译单元;extern "C"指示C++编译器按C语言规则编译链接,避免名称修饰导致符号不匹配;extern全局变量根据是否初始化分别存于.data或.bs…
🎤 虎牙
中等
C++
lambda 表达式底层实现原理
结论:lambda底层被编译器翻译成重载operator()的匿名闭包类。核心要点:1. 编译器为每个lambda生成唯一类,捕获变量成为该类成员变量;2. 按值捕获通过拷贝构造存入,按引用捕获存引用;3. 无捕获lam…
🎤 虎牙
中等
C++
lambda和bind的区别
结论:lambda更现代、可读且易优化,bind用于旧式参数绑定。核心差异:1. 写法:lambda直接写代码块,bind需用std::placeholders重排;2. 捕获:lambda可显式捕获局部变量,bind需…
🎤 腾讯
中等
C++
lambda引用捕获的风险
结论:引用捕获不延长变量生命周期,易导致悬空引用和未定义行为。核心风险:1. 返回含引用捕获的lambda,局部变量销毁后调用即悬空;2. 多线程/异步中,原作用域提前结束;3. 循环中用引用捕获循环变量,所有lambd…
🎤 腾讯
中等
C++
malloc底层实现以及线程安全
结论:malloc底层常用ptmalloc(glibc),向内核brk/mmap申请堆/匿名映射,分割为内存块管理;线程安全靠arena锁与线程本地tcache。原理:分配器维护fast/small/large bins…
🎤 腾讯
中等
C++
malloc是如何分配内存的,free怎么知道该释放多少内存?
结论:malloc从系统申请大块内存池(brk堆或mmap映射)后自行切割;free通过块头部元数据知大小。原理:实际分配时多划出头部(如8字节存size和标志),返回用户指针指向数据区;free将指针前移获头部读siz…
🎤 腾讯
中等
C++
map的两种扩容方式
结论:std::map基于红黑树,无容量扩容概念,节点动态创建;若指unordered_map,其扩容方式为rehash,常见两种策略:桶数组翻倍(2的幂)或按质数序列递增。原理:map是节点式容器,插入新元素直接分配节…
🎤 Momenta
中等
C++
map和unordered_map的区别?红黑树与AVL树的区别?
结论:map底层红黑树,有序、查找O(log n);unordered_map底层哈希表,无序、平均O(1)。红黑树弱平衡,AVL强平衡。要点:map元素按key比较排序,支持范围查询,空间开销每个节点含颜色等;unor…
🎤 Shopee
中等
C++
map是线程安全的吗?如何实现线程安全的map
结论:std::map不是线程安全的,多线程并发读写需外部同步。实现方式:1) 粗粒度锁:用std::mutex包裹所有操作,写时独占,读时共享(shared_mutex);2) 细粒度分段锁:将key空间分片,每片独立…
🎤 字节跳动
中等
C++
printf是怎么实现的
结论:printf是C标准库函数,解析格式串与可变参数,格式化后通过系统调用write输出。原理:1. 用va_list取可变参数,按%d/%s从栈或寄存器取参;2. 转字符串写入用户态stdout缓冲区(行缓冲);3.…
🎤 字节跳动
中等
C++
static_cast与dynamic_cast的区别?dynamic_cast的原理
结论:static_cast是编译期类型转换,无运行时检查;dynamic_cast用于多态类型向下转型,有RTTI运行时检查,失败返回nullptr或抛异常。区别:1. static_cast可转相关类型(数值、向上转…
🎤 英伟达
中等
C++
std::move与std::forward的区别
结论:std::move无条件将实参转为右值引用以触发移动语义;std::forward完美转发,保留实参原值类别。原理:move本质是static_cast<T&&>(t),仅类型转换不移动数据;forward利用引用…
🎤 网易
‹ 上一页
第 2 / 3 页
下一页 ›
题目整理自公开面经,答案由校招宝自研生成,仅供参考
首页
企业
考试
攻略
日报
我的