如果一定要你在 C++ 和 Java 中选择,你是会选择 C++ 还是 Java 呢?力扣君建议先学 C++,因为当你接受过暴击后,将来你才会更喜欢其它任何一门语言。(手动滑稽脸)。
C++ 一直被程序员们认为是最难的一门语言,那么在面试中经常会被问到一些什么样的技术问题呢?尤其是你在简历上写了精通 C++ 之后,那就得准备面对疾风吧,迎接面试官的灵魂拷问。下面力扣君精选了一些 C++ 面试高频问题助力大家顺利拿到 offer。 悄悄告诉你,看到最后可解锁问题答案哦!
编译内存相关
1. C++ 程序编译过程
2. C++ 内存管理
3. 栈和堆的区别
4. 变量的区别
5. 全局变量定义在头文件中有什么问题?
6. 对象创建限制在堆或栈
7. 内存对齐
8. 类的大小
9. 什么是内存泄露
10. 怎么防止内存泄漏?内存泄漏检测工具的原理?
11. 智能指针有哪几种?智能指针的实现原理?
12. 一个 unique_ptr 怎么赋值给另一个 unique_ptr 对象?
13. 使用智能指针会出现什么问题?怎么解决?
语言对比
1. C++ 11 新特性
2. C 和 C++ 的区别
3. Java 和 C++ 的区别
4. Python 和 C++ 的区别
面向对象
1.什么是面向对象?面向对象的三大特性
2.重载、重写、隐藏的区别
3.如何理解 C++ 是面向对象编程
4.什么是多态?多态如何实现?
关键字库函数
1. sizeof 和 strlen 的区别
2. lambda 表达式(匿名函数)的具体应用和使用场景
3. explicit 的作用(如何避免编译器进行隐式类型转换)
4. C 和 C++ static 的区别
5. static 的作用
6. static 在类中使用的注意事项(定义、初始化和使用)
7. static 全局变量和普通全局变量的异同
8. const 作用及用法
9. define 和 const 的区别
10. define 和 typedef 的区别
11. 用宏实现比较大小,以及两个数中的最小值
12. inline 作用及使用方法
13. inline 函数工作原理
14. 宏定义(define)和内联函数(inline)的区别
15. new 的作用?
16. new 和 malloc 如何判断是否申请到内存?
17. delete 实现原理?delete 和 delete[] 的区别?
18. new 和 malloc 的区别,delete 和 free 的区别
19. malloc 的原理?malloc 的底层实现?
20. C 和 C++ struct 的区别?
21. 为什么有了 class 还保留 struct?
22. struct 和 union 的区别
23. class 和 struct 的异同
24. volatile 的作用?是否具有原子性,对编译器有什么影响?
25. 什么情况下一定要用 volatile, 能否和 const 一起使用?
26. 返回函数中静态变量的地址会发生什么?
27. extern C 的作用?
28. sizeof(1==1) 在 C 和 C++ 中分别是什么结果?
29. memcpy 函数的底层原理?
30. strcpy 函数有什么缺陷?
31. auto 类型推导的原理
类相关
1.什么是虚函数?什么是纯虚函数?
2.虚函数和纯虚函数的区别?
3.虚函数的实现机制
4.单继承和多继承的虚函数表结构
5.如何禁止构造函数的使用?
6.什么是类的默认构造函数?
7.构造函数、析构函数是否需要定义成虚函数?为什么?
8.如何避免拷贝?
9.如何减少构造函数开销?
10.多重继承时会出现什么状况?如何解决?
11.空类占多少字节?C++ 编译器会给一个空类自动生成哪些函数?
12.为什么拷贝构造函数必须为引用?
13.C++ 类对象的初始化顺序
14.如何禁止一个类被实例化?
15.为什么用成员初始化列表会快一些?
16.实例化一个对象需要哪几个阶段
17.友元函数的作用及使用场景
18.静态绑定和动态绑定是怎么实现的?
19.深拷贝和浅拷贝的区别
20.编译时多态和运行时多态的区别
21.实现一个类成员函数,要求不允许修改类的成员变量?
22.如何让类不能被继承?
语言特性相关
1. 左值和右值的区别?左值引用和右值引用的区别,如何将左值转换成右值?
2. std::move() 函数的实现原理
3. 什么是指针?指针的大小及用法?
4. 什么是野指针和悬空指针?
5. C++ 11 nullptr 比 NULL 优势
6. 指针和引用的区别?
7. 常量指针和指针常量的区别
8. 函数指针和指针函数的区别
9. 强制类型转换有哪几种?
10. 如何判断结构体是否相等?能否用 memcmp 函数判断结构体相等?
11. 参数传递时,值传递、引用传递、指针传递的区别?
12. 什么是模板?如何实现?
13. 函数模板和类模板的区别?
14. 什么是可变参数模板?
15. 什么是模板特化?为什么特化?
16. include " " 和 <> 的区别
17. switch 的 case 里为何不能定义变量
18. 迭代器的作用?
19. 泛型编程如何实现?
20. 什么是类型萃取?
设计模式
1.了解哪些设计模式?
2.什么是单例模式?如何实现?应用场景?
3.什么是工厂模式?如何实现?应用场景?
4.什么是观察者模式?如何实现?应用场景?
为了更加具体且高效地帮助面试者在短时间内有针对性地掌握这些问题,力扣推出了全新 LeetBook「C++ 面试突击」,该书精选面试高频题并给出知识点详解,针对性代码示例一看就会,帮助你节约筛选内容时间,高效学习,带你轻松搞定 C++ 面试题,顺利拿到心仪 offer 。
LeetBook「C++ 面试突击」链接:https://leetcode-cn.com/leetbook/detail/cpp-interview-highlights/
本文作者:力扣
声明:本文归“力扣”版权所有,如需转载请联系。
本文暂时没有评论,来添加一个吧(●'◡'●)