面试真题

技术面高频问题 · 企业真题标题 + 校招宝自研参考答案
面试真题
641 道
覆盖企业
49 家
技术方向
16 个
当前筛选
265 道

按技术方向点选即筛,再点「全部」还原

按难度

按企业49 家企业的真题,点选查看该公司全部题目

难度:简单265 道 · 点击进入查看参考答案

简单AI算法
MCP 是什么?
结论:MCP通常指Model Context Protocol(模型上下文协议),是AI应用连接外部资源的开放标准。核心要点:1.架构:Host(如Claude桌面端)内含Client,连接MCP Server(提供数据…
🎤 腾讯
简单C++
vector底层原理实现与扩容机制
结论:vector是封装动态数组的序列容器,底层连续内存,容量不足时按倍数扩容。要点:1.底层通常用三个指针:start(首)、finish(尾后)、end_of_storage(容量尾后)维护;2.扩容机制:当size…
🎤 腾讯 / 小米
简单C++
除了 `inline`,还能怎么设置内联函数?
结论:可通过类内隐式声明或编译器扩展实现内联。要点:1. 在类定义内部直接实现成员函数,编译器默认将其视为内联函数(隐式inline),如class A { void foo() {} }; 2. 使用编译器特定属性:G…
🎤 百度
简单C++
内联函数定义与宏定义的区别?
结论:内联函数是编译期展开的有类型检查的函数,宏是预处理期纯文本替换且无类型安全。区别要点:1.类型安全:内联函数参数有类型,编译器校验;宏仅文本替换,易因优先级出错(如#define SQUARE(x) x*x,SQU…
🎤 领跑科技
简单C++
内存泄漏的场景有哪些?
结论:内存泄漏指动态分配内存因失去引用或未释放而无法回收,常见场景如下。1. 显式分配遗漏:C++中new/delete不匹配,malloc后未free;2. 指针重赋值:p=q覆盖前未释放原块;3. 容器滥用:全局ve…
🎤 大华股份
简单C++
请简述多态实现的原理
结论:C++多态通过虚函数表(vtable)和虚指针(vptr)实现运行时动态绑定。原理:1.类含虚函数时编译器为其生成虚表,存放虚函数地址;2.对象实例内含vptr指向所属类虚表;3.派生类重写虚函数,其虚表对应项替换…
🎤 大疆
简单C++
请简述虚析构函数的作用!
结论:基类析构函数声明为virtual,确保delete基类指针时正确析构整个派生类对象。要点:1.若基类析构非虚,通过Base*删除Derived仅调用~Base,派生部分资源泄漏;2.虚析构加入虚表,动态绑定到实际对…
🎤 华为
简单C++
请说下在C++11用过哪些特性?
结论:C++11常用特性包括类型推导、智能指针、lambda、右值引用等。要点:auto/decltype简化类型声明;范围for循环方便遍历容器;智能指针shared_ptr/unique_ptr自动管理内存;lamb…
🎤 理想汽车
简单C++
请问继承下的构造函数和析构函数执行顺序
结论:继承体系中构造顺序为先基类后派生类,析构顺序相反。原理:对象创建时先构建基类子对象才能保证派生类使用基类成员,故从最顶层基类依次向下构造;销毁时派生类可能依赖基类,需先清理自身资源再交还基类,故析构逆序。多继承时基…
🎤 腾讯
简单C++
如何定义只能在栈上生成对象的类
结论:要定义只能在栈上生成对象的类,核心是将operator new和operator delete设为private或删除(=delete),从而禁止通过new在堆上分配实例。原理:C++中执行new表达式时,编译器先…
🎤 腾讯
简单C++
如何解决头文件循环包含的问题?
结论:解决头文件循环包含,应结合前向声明、改用指针/引用成员、分离实现到源文件,并始终使用include guard。原理:循环包含(a.h含b.h,b.h含a.h)使预处理器重复展开,导致类型未定义等错误;前向声明(如…
🎤 米哈游
简单C++
手写一个单例模式代码
结论:单例模式保证类仅有一个实例并提供全局访问点。要点:私有化构造函数、拷贝/赋值;静态成员函数返回引用或指针。推荐C++11线程安全的Meyers单例:class Singleton { public: static …
🎤 快手
简单C++
头文件里可以放什么?
结论:头文件用于声明接口,可放函数声明、类/结构体声明、宏定义、typedef、模板、inline函数、extern变量声明;不可放普通函数定义和全局变量定义以免多重定义。原理:C++编译单元独立编译,头文件被多个源文件…
🎤 百度
简单C++
怎么解决C++菱形继承
结论:C++菱形继承用虚继承解决。要点:1.中间类继承公共基类加virtual关键字(如class B: virtual public A);2.虚继承使底层基类在派生类对象中仅一份实例,消除二义性;3.虚基类构造由最底…
🎤 字节跳动
简单C++
指针与引用的区别?
结论:指针保存地址可空可重绑,引用是对象别名必初始化不可改绑。核心区别:1.指针是独立变量占内存(通常8字节),引用底层多为指针常量但语法无独立身份;2.指针可赋nullptr,引用必须引用有效对象;3.指针可增减指向不…
🎤 虎牙
简单C++
auto关键字
结论:auto是C++11引入的类型推导关键字,让编译器根据初始化表达式自动推断变量类型;核心要点:1.声明时必须初始化;2.推导会丢弃顶层const和引用(除非用auto&);3.常用于简化复杂类型如迭代器、lambd…
🎤 360
简单C++
C++多态解决了什么问题
多态解决用统一基类接口操作不同派生类对象的问题,消除大量类型分支判断,提升代码扩展性与可维护性。C++含静态多态(重载、模板,编译期绑定)和动态多态(虚函数,运行期绑定)。动态多态核心:基类声明virtual函数,派生类…
🎤 字节跳动
简单C++
C++中的友元函数和友元类有什么作用?
结论:友元函数和友元类用于授予非成员函数或其他类访问当前类私有和保护成员的权限,打破封装以实现特定功能。要点:1.友元函数:在类内声明friend函数,该函数非类成员但可访问私有成员,常用于重载<<运算符或工具函数;2.…
🎤 滴滴
简单C++
C++中mutable关键字的使用
结论:mutable允许在const成员函数或const对象中修改被修饰的成员变量,突破const限制。核心要点:1.语法:在类成员变量前加mutable,如mutable int cache; 2.效果:即使对象是co…
🎤 腾讯
简单C++
const和constrxpr
结论:const表示只读,侧重运行时不修改;constexpr表示编译期常量,要求编译时可求值。要点:1.const用于变量、参数、成员函数,限定不可修改,但初始值可为运行时确定,如const int a = cin.g…
🎤 Shopee
第 1 / 14 页下一页 ›
题目整理自公开面经,答案由校招宝自研生成,仅供参考