📡
首页
🏢
企业
📚
考试
📖
攻略
📰
日报
👤
我的
校招宝-应届生校园招聘情报站
聚合秋招/春招/实习/提前批
面试真题
技术面 + 非技术面高频问题 · 企业真题标题 + 校招宝自研参考答案
面试真题
2508 道
技术岗
641 道
非技术岗
1867 道
当前筛选
52 道
按赛道
技术岗以技术方向细分;非技术岗按「结构化 / 半结构化 / 无领导 / HR / 职能」细分
全部赛道(2508)
技术岗(641)
非技术岗(1867)
按方向/形式
点选即筛,再点「全部」还原
全部(641)
数据库(114)
C++(85)
Go(82)
Java(69)
网络(65)
操作系统(54)
后端(39)
前端(37)
算法(31)
运维(22)
其他(17)
AI算法(13)
大数据(6)
测试(4)
产品(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++
多态+内存对齐
结论:多态通过虚函数表实现运行时动态绑定,内存对齐以空间换时间提升访问效率。核心要点:1.多态:基类含虚函数时对象含vptr指向vtable,调用虚函数按实际对象类型查表;纯虚函数定义接口。2.内存对齐:编译器按成员大小…
🎤 网易
中等
C++
非虚函数和虚函数的调用原理
非虚函数与虚函数核心在绑定时机与机制:1.非虚函数:编译期静态绑定,编译器根据调用者的静态类型直接确定函数入口地址,生成call指令跳转到固定地址;不依赖对象运行时类型,无多态。2.虚函数:运行期动态绑定,每个含虚函数的…
🎤 ToDesk
中等
C++
构造函数抛出异常的问题
结论:构造函数抛异常表示对象创建失败,C++会逆序析构已构造的基类与成员,但对象本身不会调用析构。要点:1)栈对象:编译器自动清理已初始化成员(如string);2)堆对象:new失败不返回指针,但构造函数体内裸资源分配…
🎤 百度
中等
C++
简述智能指针种类以及使用场景
结论:C++智能指针主要有unique_ptr、shared_ptr、weak_ptr。unique_ptr独占所有权,不可拷贝只能移动,适用单一所有者资源管理;shared_ptr引用计数,多指针共享对象,计数为0释放…
🎤 小米
中等
C++
请简述C++类型推导用法
结论:C++类型推导用于简化代码,通过auto、decltype和模板推导自动确定类型。核心要点:auto从初始化表达式推导变量类型,如auto x = 5;推导为int;decltype推导表达式类型而不计算,保留引用…
🎤 京东
中等
C++
请简述function,lambda,bind之间的关系
结论:std::function是通用函数包装器,lambda是匿名闭包,bind用于参数绑定,三者实现可调用对象统一。要点:lambda就地定义,编译器生成轻量functor,高效;std::function类型擦除可…
🎤 网易
中等
C++
如果让你实现菱形继承,你怎么做?
使用虚继承解决菱形继承的二义性和数据冗余。核心要点:在中间基类继承顶层基类时加virtual关键字,使顶层基类子对象在最终派生类中只有一份;非虚继承会导致两份基类成员,访问时产生二义性;虚继承通过虚基类表指针共享同一实例…
🎤 京东
中等
C++
如何定义只能在堆上生成对象的类
将析构函数设为private或protected并提供静态工厂方法,禁止栈上分配。核心要点:栈对象离开作用域需调用析构,若析构私有则编译报错;堆对象由delete显式调用,可在类内静态方法或友元中访问私有析构;也可将构造…
🎤 字节跳动
中等
C++
手撕 std::vector
结论:std::vector是连续内存动态数组,手撕需实现内存管理、扩容和常用接口。核心要点:1. 内部维护起始指针data、大小sz、容量cap;2. 构造可分配cap空间,析构释放;3. push_back:若sz=…
🎤 拼多多
中等
C++
手撕 unique_ptr
结论:unique_ptr是独占所有权智能指针,手撕需实现移动语义并禁止拷贝。核心要点:1. 内部持有裸指针T* ptr和删除器(默认delete);2. 析构调用删除器释放资源;3. 禁用拷贝构造和拷贝赋值(=dele…
🎤 字节跳动
中等
C++
手撕有界环形队列
结论:用固定数组+头尾索引+计数实现有界环形队列,支持入队出队且满时拒绝。核心要点:1)成员含数组buf、容量cap、头head、尾tail、大小sz;2)入队若sz<cap则buf[tail]=x, tail=(tai…
🎤 腾讯
中等
C++
手撕LRUCache
结论:LRUCache由哈希表+双向链表组成,实现O(1)访问与淘汰。核心要点:1)unordered_map<int, list<pair<int,int>>::iterator>记录key到链表节点迭代器;2)lis…
🎤 字节跳动
中等
C++
手撕ringbuffer
结论:ringbuffer是环形缓冲区,用数组+读写指针高效缓冲字节流。核心要点:1)成员含char buf[N]、读r、写w指针;2)若容量为2幂可用位掩码&替代取模提升性能;3)写入时若剩余空间不足可选择覆盖或阻塞,…
🎤 微软
中等
C++
手撕string
结论:手撕string需实现动态字符数组管理,支持构造、拷贝、赋值、析构。核心要点:1)成员char* s、size_t len、cap;2)构造从C串深拷贝并分配cap;3)拷贝构造深拷贝避免浅拷贝悬垂;4)赋值用co…
🎤 腾讯
中等
C++
手撕weak_ptr
结论:weak_ptr是配合shared_ptr的弱引用智能指针,不增加强引用计数,用于解决循环引用。核心原理:内部持有指向控制块(含强、弱计数)的指针;构造从shared_ptr来,只增弱计数;析构减弱计数;lock(…
🎤 私募机构
中等
C++
为什么要内存对齐?
结论:内存对齐提升CPU访问效率并保证硬件兼容。要点:CPU按字长读取,对齐可单次取数据,未对齐需多次拼接且某些架构(ARM)报错;编译器按最大成员填充padding,如struct{char;int;}占8字节;对比不…
🎤 百度
中等
C++
虚函数表和虚函数表指针的创建时机
结论:虚函数表在编译时创建,虚函数表指针在对象构造时(运行时)设置。要点:虚函数表(vtable)由编译器在编译期为每个有虚函数的类生成静态表,存于只读数据段,存放虚函数地址;虚函数表指针(vptr)在对象实例化调用构造…
🎤 京东
中等
C++
智能指针常见问题
结论:智能指针常见问题有循环引用、线程安全、性能与误用。要点:1.shared_ptr循环引用导致控制块计数不归零内存泄漏,需用weak_ptr打破,如双向链表或父子节点;2.线程安全仅保证引用计数原子,对象本身读写需加…
🎤 百度
中等
C++
智能指针相关面试题,shared_ptr底层实现
结论:shared_ptr底层由一个原生指针和一个指向控制块的指针组成。原理:控制块含强引用计数、弱引用计数、删除器、分配器;对象构造时(或make_shared)分配控制块,强计数初1;拷贝shared_ptr时强计数…
🎤 西山居
中等
C++
atomic应用场景以及五种操作方法
结论:std::atomic提供多线程无锁原子操作,避免数据竞争;应用场景:1.并发计数器;2.线程间标志位(如退出标志);3.无锁栈/队列等结构;五种常用操作:1.store(val)原子写;2.load()原子读;3…
🎤 亚信安全
第 1 / 3 页
下一页 ›
题目整理自公开面经,答案由校招宝自研生成,仅供参考
首页
企业
考试
攻略
日报
我的