面试真题

技术面 + 非技术面高频问题 · 企业真题标题 + 校招宝自研参考答案
面试真题
2508 道
技术岗
641 道
非技术岗
1867 道
当前筛选
11 道

按赛道技术岗以技术方向细分;非技术岗按「结构化 / 半结构化 / 无领导 / HR / 职能」细分

按方向/形式点选即筛,再点「全部」还原

按难度

按企业点选查看该公司全部题目

技术岗 · 分类:C++ · 企业:百度11 道 · 点击进入查看参考答案

简单C++
除了 `inline`,还能怎么设置内联函数?
结论:可通过类内隐式声明或编译器扩展实现内联。要点:1. 在类定义内部直接实现成员函数,编译器默认将其视为内联函数(隐式inline),如class A { void foo() {} }; 2. 使用编译器特定属性:G…
🎤 百度
简单C++
头文件里可以放什么?
结论:头文件用于声明接口,可放函数声明、类/结构体声明、宏定义、typedef、模板、inline函数、extern变量声明;不可放普通函数定义和全局变量定义以免多重定义。原理:C++编译单元独立编译,头文件被多个源文件…
🎤 百度
简单C++
explicit` 的作用?
结论:explicit修饰C++构造函数,禁止隐式类型转换。原理:1.单参数构造函数默认允许隐式转换如A a=10;调用构造。2.加explicit后只能显式A a(10);阻止意外转换。3.提升类型安全,避免如bool…
🎤 百度
简单C++
C++ 编译过程(四个阶段)
结论:C++编译分为预处理、编译、汇编、链接四个阶段。核心要点:预处理处理#指令,展开宏、包含头文件、条件编译,生成.i文件;编译将预处理代码进行词法、语法、语义分析及优化,翻译成汇编代码生成.s文件;汇编把汇编指令逐条…
🎤 百度
中等C++
构造函数抛出异常的问题
结论:构造函数抛异常表示对象创建失败,C++会逆序析构已构造的基类与成员,但对象本身不会调用析构。要点:1)栈对象:编译器自动清理已初始化成员(如string);2)堆对象:new失败不返回指针,但构造函数体内裸资源分配…
🎤 百度
中等C++
为什么要内存对齐?
结论:内存对齐提升CPU访问效率并保证硬件兼容。要点:CPU按字长读取,对齐可单次取数据,未对齐需多次拼接且某些架构(ARM)报错;编译器按最大成员填充padding,如struct{char;int;}占8字节;对比不…
🎤 百度
中等C++
智能指针常见问题
结论:智能指针常见问题有循环引用、线程安全、性能与误用。要点:1.shared_ptr循环引用导致控制块计数不归零内存泄漏,需用weak_ptr打破,如双向链表或父子节点;2.线程安全仅保证引用计数原子,对象本身读写需加…
🎤 百度
中等C++
C++什么时候生成默认的构造函数?
编译器在需要时合成默认构造函数(无参):1.类有虚函数(需初始化vptr);2.有虚继承(需设虚基类指针);3.基类无默认构造或默认不可访问;4.成员对象无默认构造。若用户已定义任意构造函数,编译器不再合成默认版(可用=…
🎤 百度
中等C++
编译、链接、重定位
结论:编译将源码转汇编,汇编生成可重定位目标文件,链接合并目标文件并解析符号,重定位修正地址。要点:编译分预处理、编译、汇编,检查语法生成汇编,产出.o文件含未决符号引用且地址从0始;链接进行符号解析和重定位,把相对偏移…
🎤 百度
中等C++
C++ 四种强制类型转换
结论:C++提供四种命名强制转换以增强类型安全:static_cast、dynamic_cast、const_cast、reinterpret_cast。要点:static_cast用于编译期已知类型的转换,如数值提升、…
🎤 百度
中等C++
double 转 int64 用 `reinterpret_cast` 和 `static_cast` 区别
结论:static_cast做数值类型转换(截断小数),reinterpret_cast仅重新解释比特模式不做数值转换。区别:1.static_cast<int64_t>(d)将double值3.14转为int64_t的…
🎤 百度
题目整理自公开面经,答案由校招宝自研生成,仅供参考