C++常见面试问题汇总
- 指针和引用的区别
- 堆和栈的区别
- new和delete是如何实现的,new 与 malloc的异同处
- C和C++的区别
- C++、Java的联系与区别,包括语言特性、垃圾回收、应用场景等(java的垃圾回收机制)
- Struct和class的区别
- define 和const的区别(编译阶段、安全性、内存占用等)
- 在C++中const和static的用法(定义,用途)
- const和static在类中使用的注意事项(定义、初始化和使用)
- C++中的const类成员函数(用法和意义),以及和非const成员函数的区别
- C++的顶层const和底层const
- final和override关键字
- 拷贝初始化和直接初始化,初始化和赋值的区别
- extern "C"的用法
- 模板函数和模板类的特例化
- C++的STL源码(这个系列也很重要,建议侯捷老师的STL源码剖析书籍与视频),其中包括内存池机制,各种容器的底层实现机制,算法的实现原理等)
- STL源码中的hashtable的实现
- STL中unordered_map和map的区别和应用场景
- STL中vector的实现
- STL容器的几种迭代器以及对应的容器(输入迭代器,输出迭代器,前向迭代器,双向迭代器,随机访问迭代器)
顺序容器:vector,deque是随机访问迭代器;list是双向迭代器
容器适配器:stack,queue,priority_queue没有迭代器
关联容器:set,map,multiset,multimap是双向迭代器
unordered_set,unordered_map,unordered_multise

本文汇总了C++面试中常见的问题,包括指针与引用的区别、堆栈内存、C++与C的区别、STL源码解析、多态、内存管理、构造函数与拷贝行为、智能指针、模板及新特性等核心知识点。

894

被折叠的 条评论
为什么被折叠?



