嵌入式大厂面经 C++常见面试题(持续更新中!)

这是一个嵌入式大厂面试题专栏,每天更新高频面试题。专栏将包含题目描述、详细解析、相关知识点扩展以及实际代码示例。内容涵盖操作系统、驱动开发、通信协议等核心领域,并结合实际项目经验进行分析。每道题目都会附带面试官可能的追问方向,帮助大家更好地准备面试!

1. 基础概念

1.1 C++与C的区别

  • C++支持面向对象编程(封装、继承、多态)
  • C++支持函数重载
  • C++有引用类型
  • C++有异常处理机制
  • C++支持模板编程
  • C++有标准模板库(STL)

1.2 面向对象的三大特性

  • 封装:将数据和操作数据的方法绑定在一起,对外部隐藏实现细节
  • 继承:子类继承父类的特性,实现代码复用
  • 多态:同一操作作用于不同对象,产生不同的执行结果

2. 内存管理

2.1 内存分区

  • 栈区:存放函数参数、局部变量等,由编译器自动分配释放
  • 堆区:动态内存分配,需要手动释放
  • 全局区/静态区:存放全局变量、静态变量等
  • 常量区:存放常量
  • 代码区:存放程序的二进制代码

2.2 内存泄漏

内存泄漏指程序分配的内存由于某种原因未被释放,常见原因:

  • 忘记调用delete/delete[]
  • 指针重新赋值导致原内存无法访问
  • 循环引用导致引用计数无法归零

2.3 智能指针

  • unique_ptr:独占所有权,不能复制,可以移动
  • shared_ptr:共享所有权,使用引用计数
  • weak_ptr:不控制对象生命周期,解决循环引用问题
std::unique_ptr<int> p1(new int(5));
std::shared_ptr<int> p2 = std::make_shared<int>(10);
std::weak_ptr<int> wp = p2;

3. 类与对象

3.1 构造函数与析构函数

  • 构造函数:初始化对象
  • 析构函数:清理资源
  • 拷贝构造函数:用一个已存在的对象初始化新对象
  • 移动构造函数:用一个临时对象初始化新对象

3.2 虚函数与纯虚函数

  • 虚函数:允许子类重写的函数,使用virtual关键字
  • 纯虚函数:没有实现的虚函数,使用=0声明
  • 抽象类:包含至少一个纯虚函数的类,不能实例化
class Base {
public:
    virtual void func() { cout << "Base::func" << endl; }
    virtual void pureFunc() = 0; // 纯虚函数
};

3.3 虚函数表

  • 每个包含虚函数的类都有一个虚函数表
  • 每个对象都有一个指向虚函数表的指针(vptr)
  • 虚函数表存储虚函数的地址,实现动态绑定

3.4 多态实现原理

  • 静态多态:函数重载、运算符重载,编译时确定
  • 动态多态:通过虚函数实现,运行时确定

4. 高级特性

4.1 模板

  • 函数模板:实现类型参数化的函数
  • 类模板:实现类型参数化的类
  • 模板特化:为特定类型提供特殊实现
template<typename T>
T max(T a, T b) {
    return a > b ? a : b;
}

template<typename T>
class Vector {
    T* data;
    size_t size;
public:
    // ...
};

4.2 STL

  • 容器:vector, list, map, set等
  • 算法:sort, find, for_each等
  • 迭代器:连接容器和算法
  • 函数对象:可调用的对象

4.3 右值引用与移动语义

  • 左值:有名字、可取地址的表达式
  • 右值:临时对象、字面常量等
  • 右值引用:使用&&声明,可以绑定到右值
  • 移动语义:避免不必要的复制,提高性能
void func(int&& x) {
    // 使用右值引用参数
}

// 移动语义
std::vector<int> v1{1, 2, 3};

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

嵌入式面试八股文全集 文章被收录于专栏

这是一个全面的嵌入式面试专栏。主要内容将包括:操作系统(进程管理、内存管理、文件系统等)、嵌入式系统(启动流程、驱动开发、中断管理等)、网络通信(TCP/IP协议栈、Socket编程等)、开发工具(交叉编译、调试工具等)以及实际项目经验分享。专栏将采用理论结合实践的方式,每个知识点都会附带相关的面试真题和答案解析。

全部评论

相关推荐

评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客企业服务