毫无保留,面经合集
1. 描述C++程序到可执行程序的四个过程。
2. 说明面向对象的特性。
3. 区分静态多态和动态多态。
4. 解释动态多态和静态多态的原理,并比较它们的效率。
5. 什么是智能指针?
6. `shared_ptr` 是否线程安全?
7. 解释深拷贝和浅拷贝的区别。
8. 比较 `i++`、`++i` 和 `++(i++)` 的行为。
9. 解释右值引用、移动语义以及其底层原理。
10. `vector` A 存储在哪里?`A.push_back(1)` 中的 `1` 存储在哪里?
11. `vector` 的 `clear` 和 `push_back` 的时间复杂度及其原因。
12. STL 容器是否线程安全?为什么?
13. 线程和进程的区别。
14. 计算线程创建的最大数量的公式。
15. 什么是协程?协程是否有创建数量的限制?
16. 什么是死锁?
17. 每个线程需要 100 把锁,如何避免死锁?
18. 解释 `thread_local` 的用法和作用。
19. 什么是野指针?如何避免野指针?
20. 解释 `new`、`delete` 和 `malloc`、`free` 的区别和常识。
21. 虚函数、虚函数表和虚指针的概念是什么?
22. 面向对象的基本特征。
23. 解释死锁的四个必要条件。
24. 区分内联函数和宏定义。
25. 动态链接和静态链接的区别。
26. 编译过程的各个阶段是什么?
27. 如何找到两个无环链表的公共节点?
28. 如何在无序的浮点数数组中找到中位数?
29. 快速排序的原理及其优化方式。
30. 列出三种智能指针及其特点。
31. 解释左右值的概念。
32. 描述三种特殊构造函数。
33. `i++` 和 `++i` 是左值还是右值?
34. 什么是完美转发?
35. 右值能否取到地址?
问题答案已经整理到专栏中了,关注我分享更多知识。
2. 说明面向对象的特性。
3. 区分静态多态和动态多态。
4. 解释动态多态和静态多态的原理,并比较它们的效率。
5. 什么是智能指针?
6. `shared_ptr` 是否线程安全?
7. 解释深拷贝和浅拷贝的区别。
8. 比较 `i++`、`++i` 和 `++(i++)` 的行为。
9. 解释右值引用、移动语义以及其底层原理。
10. `vector` A 存储在哪里?`A.push_back(1)` 中的 `1` 存储在哪里?
11. `vector` 的 `clear` 和 `push_back` 的时间复杂度及其原因。
12. STL 容器是否线程安全?为什么?
13. 线程和进程的区别。
14. 计算线程创建的最大数量的公式。
15. 什么是协程?协程是否有创建数量的限制?
16. 什么是死锁?
17. 每个线程需要 100 把锁,如何避免死锁?
18. 解释 `thread_local` 的用法和作用。
19. 什么是野指针?如何避免野指针?
20. 解释 `new`、`delete` 和 `malloc`、`free` 的区别和常识。
21. 虚函数、虚函数表和虚指针的概念是什么?
22. 面向对象的基本特征。
23. 解释死锁的四个必要条件。
24. 区分内联函数和宏定义。
25. 动态链接和静态链接的区别。
26. 编译过程的各个阶段是什么?
27. 如何找到两个无环链表的公共节点?
28. 如何在无序的浮点数数组中找到中位数?
29. 快速排序的原理及其优化方式。
30. 列出三种智能指针及其特点。
31. 解释左右值的概念。
32. 描述三种特殊构造函数。
33. `i++` 和 `++i` 是左值还是右值?
34. 什么是完美转发?
35. 右值能否取到地址?
问题答案已经整理到专栏中了,关注我分享更多知识。
c++/嵌入式面经专栏-牛客网
https://gw-c.nowcoder.com/api/sparta/jump/link?link=https%3A%2F%2Fwww.nowcoder.com%2Fcreation%2Fmanager%2FcolumnDetail%2FMJNwoM
全部评论
`i++` 和 `++i` 是左值还是右值:++i是可以作为左值(先自加然后返回)i++右值(先返回变量 i 的当前值作为一个临时值,然后再将变量 i 的值自增 1)
相关推荐
06-28 17:41
清华大学 Java 点赞 评论 收藏
分享
06-02 15:17
门头沟学院 Java 点赞 评论 收藏
分享