0
收藏
微博
微信
复制链接

嵌入式工程师面试会被问到哪些C++问题?

2025-08-19 09:51
687

一、C++语言核心

构造函数与虚函数

构造函数为何不能声明为虚函数?

static函数能否为虚函数?

explicit的作用及使用场景。

内存管理

new与malloc的区别(类型安全、构造函数调用)

野指针与内存泄漏的规避策略

空类的大小及默认生成的函数(构造/析构/拷贝等)。

关键字深挖

const修饰指针的四种形式(int const* vs int* const)

volatile的应用场景(中断共享变量、硬件寄存器)

static在局部/全局变量及函数中的作用。

面向对象

虚函数表(vtable)的机制

纯虚函数与抽象类的定义

移动构造与拷贝构造的性能差异。

1.png

二、内存与资源管理

动态内存操作

vector扩容机制(2倍扩容、resize vs reserve)

push_back()与emplace_back()的性能差异

智能指针(unique_ptr/shared_ptr)的使用场景。

数据存储与访问

结构体与联合体(struct/union)的内存对齐规则

位域(Bit-field)的应用与限制

大小端判断程序实现。

三、多线程与并发

线程控制

线程状态(就绪/运行/阻塞)及线程锁类型(互斥锁/读写锁)

线程同步手段(信号量/条件变量/原子操作)

乐观锁与悲观锁的区别。

资源竞争

竞争条件(Race Condition)的成因

死锁的预防与检测

无锁编程的实现条件。

四、硬件与系统交互

硬件关联

寄存器映射中的volatile使用

中断服务程序(ISR)的编写约束(不可阻塞、短耗时)

位操作技巧(设置/清除特定位)。

通信协议

SPI的四种工作模式(CPOL/CPHA)

I²C的起始/停止条件及冲突仲裁

UART的波特率与帧格式配置。

五、STL与模板

容器特性

map(红黑树实现)与unordered_map(哈希表实现)的性能差异

哈希冲突解决方法(开放地址法/链地址法)

迭代器失效场景(如vector插入时)。

现代C++

完美转发(std::forward)的实现原理

Lambda表达式的捕获方式(值捕获 vs 引用捕获的生命周期风险)

move语义的底层实现(右值引用转换)。


本文凡亿教育原创文章,转载请注明来源!

登录后查看更多
0
评论 0
收藏
侵权举报
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表凡亿课堂立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。

热门评论0

相关文章

开班信息