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. 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 评论
分享
牛客网
牛客企业服务