之前许多朋友私信问过我整理一篇“C++面试题”,我把自己在面试过程中被问的和自认为重要的面试题整理出来,希望对大家有所帮助。其中一些问题,请关注我的公众号,都有相应的文章。

01 C语言

  1. const的作用有哪些,谈一谈你对const的理解?

  2. 描述char*、const char*、char* const、const char* const的区别?

  3. 指针常量和常量指针有什么区别?

  4. static的作用是什么,什么情况下用到static?

  5. 全局变量与局部变量的区别?

  6. 宏定义的作用是什么?

  7. 内存对齐的概念?为什么会有内存对齐?

  8. inline 内联函数的特点有哪些?它的优缺点是什么?

  9. 如何用C 实现 C++ 的面向对象特性(封装、继承、多态)

  10. memcpy怎么实现让它效率更高?

  11. typedef和define有什么区别?

  12. extern有什么作用,extern C有什么作用?

  13. 如何避免野指针?

  14. 如何计算结构体长度?

  15. sizeof和strlen有什么区别?

  16. 知道条件变量吗?条件变量为什么要和锁配合使用?

02 C++基础

  1. C语言和C++有什么区别?

  2. struct和class有什么区别?

  3. extern "C"的作用?

  4. 函数重载和覆盖有什么区别?

  5. 谈一谈你对多态的理解,运行时多态的实现原理是什么?

  6. 对虚函数机制的理解,单继承、多继承、虚继承条件下虚函数表的结构

  7. 如果虚函数是有效的,那为什么不把所有函数设为虚函数?

  8. 构造函数可以是虚函数吗?析构函数可以是虚函数吗?

    面试系列之C++的对象布局【建议收藏】

  9. 什么场景需要用到纯虚函数?纯虚函数的作用是什么?

  10. 了解RAII吗?介绍一下?

    RAII妙用之计算函数耗时

    RAII妙用之ScopeExit

  11. 类的大小怎么计算?

  12. volatile关键字的作用?什么时候需要使用volatile关键字

  13. 如何实现一个线程池?C++线程池的实现之格式修订版

  14. 了解各种强制类型转换的原理及使用?

  15. 指针和引用有什么区别?什么情况下用指针,什么情况下用引用?

  16. 一般什么情况下会出现内存泄漏?怎么用C++在编码层面尽量避免内存泄漏。

  17. unique_ptr如何转换所有权?

  18. 谈一谈你对面向对象的理解

  19. 什么场景下使用继承方式,什么场景下使用组合?

  20. new和malloc有什么区别?

  • malloc的内存可以用delete释放吗?

  • malloc出来20字节内存,为什么free不需要传入20呢,不会产生内存泄漏吗?

  • new[]和delete[]一定要配对使用吗?new[]和delete[]为何要配对使用?

21. C++11新特性你都了解多少?

  • 了解auto和decltype吗?一文吃透C++11中auto和decltype知识点

  • 谈一谈你对左值和右值的了解,了解左值引用和右值引用吗?

  • 了解移动语义和完美转发吗?左值引用、右值引用、移动语义、完美转发,你知道的不知道的都在这里

  • 了解列表初始化吗?学会C++11列表初始化

  • 平时会用到function、bind、lambda吗,都什么场景下会用到?搞定c++11新特性std::function和lambda表达式

  • 对C++11的mutex和RAII lock有过了解吗?c++11新特性之线程相关所有知识点

  • 对C++11的智能指针了解多少,可以自己实现一个智能指针吗?c++11新特性之智能指针 源码分析shared_ptr实现之修订版

  • enum 和 enum class有什么区别?

22. STL

  • C++直接使用数组好还是使用std::array好?std::array是怎么实现的?

  • std::vector最大的特点是什么?它的内部是怎么实现的?resize和reserve的区别是什么?clear是怎么实现的?

  • deque的底层数据结构是什么?它的内部是怎么实现的?

  • map和unordered_map有什么区别?分别在什么场景下使用?

  • list的使用场景?std::find可以传入list对应的迭代器吗?

  • string的常用函数

03 设计模式

如果你能知道所有的设计模式最好,即便不知道所有的设计模式,下面这些高频设计模式你还是需要了解的。

  1. 分别写出饿汉和懒汉线程安全的单例模式

  2. 说出观察者模式类关系和优点

  3. 说出代理模式类关系和优点

  4. 说出工厂模式概念和优点

  5. 说出构造者模式概念

  6. 说出适配器模式概念

04 操作系统

  1. 进程和线程的区别?深度好文|面试官:进程和线程,我只问这19个问题

  2. 操作系统是怎么进行进程管理的?

  3. 操作系统是如何做到进程阻塞的?

  4. 进程之间的通信方式有哪些?

  5. 什么是上下文切换,操作系统是怎么做的上下文切换?

  6. 线程是如何实现的?

  7. 线程之间私有和共享的资源有哪些?

  8. 一般应用程序内存空间的堆和栈的区别是什么?

  9. 进程虚拟空间是怎么布局的?10张图22段代码,万字长文带你搞懂虚拟内存模型和malloc内部原理

  10. 虚拟内存是如何映射到物理内存的?了解分页内存管理吗?操作系统内存管理,你能回答这8个问题吗?

  11. 产生死锁的必要条件有哪些?如何避免死锁?

  12. 什么是大端字节,什么是小端字节?如何转换字节序?

  13. 信号和信号量的区别是什么?

  14. 锁的性能开销,锁的实现原理?

  15. 了解CPU的Cache吗?如何写一个高效的多维矩阵乘法?如何利用CPU Cache写出高性能代码,看这些图就够了!

05 编译原理

  1. gcc hello.c 这行命令具体的执行过程,内部究竟做了什么?gcc a.c 究竟经历了什么?

  2. 程序一定会从main函数开始运行吗?

  3. 如何确定某个函数有被编译输出?

  4. 动态链接库和静态链接库的区别是什么?Linux 为什么要动态链接?与静态链接的区别是什么?

大家如果对哪个问题有疑问可以留言,有其他觉得比较好的问题也可以分享在留言区!

C++面试宝典(纯干货)相关推荐

  1. 计算机专业面试技巧纯干货

    面试问题汇总 1.请介绍一下你自己 这是面试官100%会问的问题,一般人回答这个问题过于平常,只说姓名.年龄.爱好.所学专业等,如果你用一分钟来重复你的简历,那么,你的印象加分没有了! 不妨坦诚自信地 ...

  2. java如何创造一个整数的类_【技术干货】Java 面试宝典:Java 基础部分(1)

    原标题:[技术干货]Java 面试宝典:Java 基础部分(1) Java基础部分: 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io 的 ...

  3. 2020最新各大厂面试遇到的100道软件测试面试题+答案纯干货!! 金九银十到了 快点看!!!

    [纯干货!!!]花费了整整3天,整理出来的全网最实用软件测试面试大全,一共100道题目+答案的纯干货,希望大家多多支持,建议 点赞!!收藏!!长文警告,全文共12000+字,涵盖软件测试面试可能遇到的 ...

  4. 前端面试题汇总(JavaScript面试纯干货)

    前端面试题汇总(JavaScript面试纯干货) 1 闭包 闭包就是能够读取其他函数内部变量的函数 闭包是指有权访问另⼀个函数作⽤域中变量的函数,创建闭包的最常⻅的⽅式就是在⼀个函数内创建另⼀个函数, ...

  5. Java程序员面试时,应当注意HR面的十三个小套路,纯干货分享

    本文转载自:Java程序员面试时,应当注意HR面的十三个小套路,纯干货分享 一. 简单自我介绍 您好,我叫xxx,是xxx公司的Java开发工程师,目前负责公司的xxx项目.该项目有n个成员,我是该项 ...

  6. 纯干货|职场晋级:程序员面试技巧汇总

    白天黑夜,春去秋来 同学们日复一日的苦敲代码 为的就是一份好工作 而好工作的第一步一定是:面试 闲话不多讲 今天向大家分享 关于程序员面试的那些干货 其实有很多文章说面试相关的问题,有国内也有国外的, ...

  7. class转java_[拒绝套路,纯干货]这一百多道 Java 基础问题你掌握了吗?

    码农每日一题长按关注,工作日分享一些技术知识点. [每日一题]Java 基本数据类型基础面试题 [每日一题]Java 包装类型装箱拆箱基础面试题 [每日一题]Java 字符串(Part 1)相关面试题 ...

  8. 阿里巴巴招聘最全集合帖:宣讲会+岗位+30篇面试宝典来啦

    简介: 又到了金三银四的季节-- 特别为你送上阿里巴巴招聘各类信息汇总,还有30篇面试宝典+必备资料,供你学! 如何拿到阿里offer?别错过这篇超全集合帖! 金三银四,你不能错过的阿里巴巴招聘超全集 ...

  9. 《程序员面试宝典》精华 面向对象部分

    <程序员面试宝典>精华 面向对象部分 正所谓取其精华,去其糟粕.本文谨记录下<程序员面试宝典>一些关键的知识点.易错点,对于一些虽然重要但书中没有解释清楚的地方不做记录.书里是 ...

  10. ios 与web服务器传值_中高级iOS大厂面试宝典,拿到offer率80%,金三银四将是你的新起点...

    引言 过年之后相信有一部分的人,早已磨刀霍霍向大厂.势必要大展拳脚,必将在大厂内创出一片天地.但是,想必大家都知道:最近几年的最严重的互联网寒冬来临,各位兄弟都会说"江湖再见".耳 ...

最新文章

  1. 梦到计算机坏了无法算账,梦见算账,做梦梦见算账是什么征兆?
  2. 有AI学会控制核聚变反应堆了,来自DeepMind,登上今日Nature
  3. MySQL / 多版本并发控制
  4. python绘制繁花曲线代码_使用python和pygame绘制繁花曲线的方法
  5. 石子合并(洛谷-P1880)
  6. iPhone 11系列没5G又没创新 库克的回应听了真是让人没脾气...
  7. NUC1076 LCD-Display【打印图案】
  8. Linux操作系统中df和du命令常见用法
  9. PHP ECSHOP中 诡异的问题:expects parameter 1 to be double
  10. sqlalchemy query函数可用参数有哪些?
  11. 如何在js中实现html语言,如何使用脚本标签将JavaScript插入HTML
  12. 系统分析师教程电子版免费下载
  13. ❤️C语言自定义类型的介绍❤️(结构体,枚举,联合体,位段)
  14. 一个遮罩层怎么遮罩两个图层_遮罩动画是由两个图层组成的,一个是遮罩层,一个是被遮罩层。...
  15. 基于Vue的数据埋点统计
  16. 基于web服务的文件共享平台pydio搭建教程
  17. android安装sdk时,failed read或者write可能是权限问题
  18. phpstudy提示80端口被system占用
  19. 小米电脑桌面没见计算机怎么办,手机屏幕太小?一分钟教会你小米手机投屏电脑方法,低调收藏!...
  20. 我的世界服务器如何制作武器,我的世界2B2T服务器玩家都会去做的7件事 第1件是游戏中的禁忌...

热门文章

  1. 计算机科普小知识大全,电脑小白知识科普 10个Win10实用技巧科普
  2. 最新MT6763参考设计芯片资料
  3. 训练集,验证集,测试集
  4. redfish、ipmi返回状态码
  5. 用计算机表白的数字,数字表白密码 表白密码大全
  6. pyhive 安装sasl
  7. springboot电子阅览室app毕业设计源码016514
  8. 豆丁网文库下载器,版本:201…
  9. Linux应急响应篇
  10. ActiveMQ菜鸟入门教程