c++面经汇总35题

1. const和constexpr有什么区别?
2. RAII(资源获取即初始化)是什么?它的优点是什么?
3. 智能指针有哪些?各自的特点是什么?
4. nullptr有什么作用?
5. 解释一下虚函数表(vtable)和虚函数指针(vptr)。
6. 多重继承会引发哪些问题?如何解决?
7. 什么是函数重载和函数覆盖?它们之间有什么区别?
8. 如何实现接口(Interface)?
9. 解释一下命名空间(namespace)。
10. 模板是什么?它们的优点和缺点是什么?
11. 解释一下类型推导(type deduction)。
12. 异常处理机制是如何工作的?
13. 解释一下析构函数的作用和使用场景。
14. 引用折叠(reference collapsing)是什么?
15. 移动语义(move semantics)是什么?
16. std::function是什么?它的用途是什么?
17. std::bind是什么?如何使用?
18. 如何实现单例模式?
19. 多态是如何实现的?
20. 解释一下友元(friend)机制。
21. 类型转换有哪些方式?分别是什么?
22. 内存对齐(memory alignment)是什么?
23. volatile关键字有什么作用?
24. static关键字的作用是什么?
25. 动态类型识别(RTTI)是什么?
26. std::shared_ptr和std::unique_ptr有什么区别?
27. std::array和C-style数组有什么区别?
28. std::list和std::vector有什么区别?
29. std::map和std::set有什么区别?
30. std::thread的基本使用方法是什么?
31. 条件变量(condition variable)是什么?如何使用?
32. 信号量(semaphore)是什么?与互斥锁有什么区别?
33. 内存管理有哪些方法?如何避免内存泄漏?
34. 编译器优化有哪些常见策略?
35. 编译过程是怎样的?包括哪些阶段?

我面试看的是大佬的面经,链接放下边了
#面经#
全部评论

相关推荐

1. C++中的构造函数和析构函数的作用是什么?2. 什么是C++中的命名空间?如何使用?3. C++中的虚析构函数有什么作用?4. C++中如何实现抽象类和接口?5. 什么是多态的静态绑定和动态绑定?6. C++中的默认参数是什么?如何使用?7. 什么是C++中的强制类型转换?8. C++中如何使用std::vector和std::list的区别?9. 什么是C++中的std::map和std::set?10. C++中的异常安全性分为哪几种级别?11. 什么是C++中的内存对齐?12. C++中如何使用std::pair和std::tuple?13. C++中的friend类和friend函数有什么区别?14. C++中如何实现模板类?15. 什么是C++中的类型推导(decltype)?16. C++中的智能指针如何防止内存泄漏?17. C++中如何使用std::shared_ptr和std::weak_ptr?18. C++中的std::mutex和std::lock_guard有什么区别?19. 什么是C++中的线程安全容器?20. C++中如何实现条件变量的使用?21. 什么是C++中的移动语义?22. C++中的std::function和函数指针有什么区别?23. C++中如何使用std::algorithm库?24. C++中的std::initializer_list是什么?25. C++中如何使用模板元编程?26. 什么是C++中的类型特征(type traits)?27. C++中如何实现自定义的迭代器?28. C++中的std::unique_ptr和std::shared_ptr的使用场景是什么?29. C++中如何处理字符串和字符数组的区别?30. C++中如何使用std::string和C风格字符串?31. 什么是C++中的析构函数的虚函数?32. C++中如何实现运算符重载的友元函数?33. C++中的std::array和C风格数组有什么区别?34. C++中如何使用范围for循环遍历容器?35. C++中的std::optional是什么,如何使用?嵌入式C++面经推荐大佬面经  链接在下边  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
点赞 评论 收藏
分享
1. push_back()左值和右值的区别是什么?2. move底层是怎么实现的?3. 完美转发的原理是什么?4. 空类中有什么函数?5. explicit用在哪里?有什么作用?6. 成员变量初始化的顺序是什么?7. 指针占用的大小是多少?8. 野指针和内存泄漏是什么?如何避免?9. malloc和new的区别是什么?10. 多线程会发生什么问题?线程同步有哪些手段?11. 什么是STL?12. 对比迭代器和指针的区别13. 线程有哪些状态,线程锁有哪些?14. 解释说明一下map和unordered_map15. vector中的push_back()和emplace_back()的区别、以及使用场景16. 如何实现线程安全,除了加锁还有没有其他的方式?17. vector扩容,resize和reserve的区别18. vector扩容为了避免重复扩容做了哪些机制?19. C++中空类的大小是多少?20. weak_ptr是怎么实现的?21. 虚函数的底层原理是什么?22. 一个函数f(int a,int b),其中a和b的地址关系是什么?23. 移动构造和拷贝构造的区别是什么?24. lamda表达式捕获列表捕获的方式有哪些?如果是引用捕获要注意什么?25. 哈希碰撞的处理方法26. unordered_map的扩容过程27. vector如何判断应该扩容?(size和capacity)28. 构造函数是否能声明为虚函数?为什么?什么情况下为错误?29. 类中static函数是否能声明为虚函数?30. 哪些函数不能被声明为虚函数?31. 如何保证类的对象只能被开辟在堆上?(将构造函数声明为私有、单例)32. 讲讲你理解的虚基类33. C++哪些运算符不能被重载?34. 动态链接和静态链接的区别,动态链接的原理是什么?35. C++中怎么编译C语言代码?答案附在面经中  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
点赞 评论 收藏
分享
1 10 评论
分享
牛客网
牛客企业服务