# C++ 面试题
目前,最强八股文第七版,C++ 方向已经按照模块化方式完成整理,内容覆盖非常全面。
基础与语法
从 C++ 的三大特性,到指针/引用、struct/class、static/const、extern C、volatile、inline、auto/decltype、sizeof/strlen、类型转换等基础知识点,帮助你把最容易被问、最容易混淆的基础问题彻底理清。
面向对象
围绕构造函数、析构函数、重载/重写、多态、虚函数、纯虚函数、虚函数表、多重继承、菱形继承、深浅拷贝、this 指针、单例模式等经典面试题展开,覆盖 C++ OOP 的核心考点。
内存管理
从堆和栈,到 new/malloc、free/delete、placement new、内存泄漏、野指针、越界、碎片、溢出等问题,都是 C++ 面试中绕不开的重点。
智能指针
智能指针为什么出现、底层原理是什么、线程安全性如何,这些问题不只是“会用”,更要求你能讲清楚设计思想。
C++11 与现代 C++
包括左值/右值引用、移动语义、完美转发、std::move、std::forward、lambda、RAII、异常处理、协程等内容,基本覆盖现代 C++ 面试的核心高频点。
STL 与容器
容器原理、allocator、迭代器失效、vector 扩容、rehash 机制、map 与 unordered_map 的区别、底层结构实现等,都是实际面试中非常容易追问的部分。
并发与 I/O
像互斥锁、自旋锁、select、poll、epoll 等问题,在后端、服务端、Linux 方向面试中几乎属于常客。
这不是一份“看起来很多”的目录,
而是一份真正围绕 面试高频 + 原理深度 + 表达能力 打磨出来的内容集合。
# 基础与语法
- 介绍c++一下三大特性
- 指针和引用的区别
- 结构体和类的区别
- 结构体与联合体的区别
- static关键字和const关键字的作用
- extern C的作用
- volatile关键字的作用
- inline函数与宏的区别与优劣
- auto和decltype的区别
- sizeof和strlen的区别
- 浮点数比较方法
- 静态局部变量,全局变量,局部变量的特点,以及使用场景
- C++中四种类型转换
# 面向对象
- C++构造函数有几种,分别什么作用?
- 什么是构造函数和析构函数?构造函数和析构函数可以是虚函数吗?为什么?
- C++的重载和重写,以及它们的区别和实现方式
- C++怎么实现多态
- C++中的虚函数和纯虚函数有什么区别?
- 虚函数怎么实现的?
- 虚函数表是什么
- 多重继承的优缺点及菱形继承问题
- 如何禁止一个类被继承
- 深拷贝和浅拷贝的区别?
- this指针的原理
- C++如何实现一个单例模式?
# 内存管理
- C++内存分区,堆和栈的区别
- new和melloc的区别是什么?
- free和delete区别的是什么?
- placement new的作用
- 什么是内存泄漏?什么是野指针?什么是内存越界?如何避免?
- 内存碎片与内存溢出
- 如何避免内存碎片
# 智能指针
# C++11 与现代 C++
- C++11中的新特性有哪些
- C++11中的多线程编程
- 左值引用和右值引用的区别
- 移动语义有什么作用,原理是什么
- 完美转发的作用及实现
- 说一下c++中stdmove与stdforward的区别
- 说一下lambda函数
- 仿函数与lambda性能对比
- c++中 STL中仿函数与lambda表达式的性能对比
- C++中的RAII机制
- C++中的异常处理机制
- C++中的协程概念及实现
# STL 与容器
- STL容器了解哪些
- STL中allocator的作用
- STL中迭代器失效的场景
- c++的map和unordered_map有什么区别和实现原理
- map,deque,list的底层实现原理
- unordered_map的rehash机制
- vector底层原理和扩容过程
- push_back()和emplace_back()的区别
评论
验证登录状态...