Linux C/C++后台开发面试重点知识
文章转载自个人博客: Linux C/C++后台开发面试重点知识
查看目录
一、C++ 面试重点
本篇主要是关于 C++ 语言本身,如果是整个后台技术栈的学习路线,可以看这篇文章: Linux C++ 后台开发学习路线
对于 C++ 后台开发面试来说,基本上语言层面考察候选人以下几个方面(其它算法、计算机基础暂时不在这里列出来):
-
对于指针、内存的理解
-
对于运行时 Runtime 的理解
-
一些语法特性和关键字的掌握
-
C++11 及现代 C++ 的一些特性,比如智能指针
-
STL 部分容器的算法和内存分配原理
下面👇细化一下这些具体的知识:
三、基础语言特性(必备)
首先是语言的基础知识,一些关键字和实现原理等:
-
指针、引用、数组、内存
-
引用与指针区别
-
C 和 C++ 的一些区别,比如 new、delete 和 malloc、free 的区别
-
虚机制:虚函数、虚函数表、纯虚函数
-
继承、虚继承、菱形继承等
-
多态: 动态绑定,静态多态
-
重写、重载
-
智能指针原理:引用计数、RAII(资源获取即初始化)思想
-
智能指针使用:shared_ptr、weak_ptr、unique_ptr等
-
一些关键字的作用:static、const、volatile、extern
-
四种类型转换:static_cast, dynamic_cast, const_cast, reinterpret_cast
-
STL 部分容器的实现原理,如 vector、deque、map、hashmap
四、进阶语言特性(推荐)
-
模板特化、偏特化,萃取 traits 技巧
-
编译链接机制、内存布局(memory layout)、对象模型
-
C++11 部分新特性,比如右值引用、完美转发等
这里列出来的只是一些比较重要的部分,实际上可能只算 C++ 的冰山一角, 大家且学且珍惜吧,这不 C11 还没整透彻,C 20 又出来了,生命不息,学习不止。
五、怎么准备?
更新中,可以先看原文: Linux C/C++后台开发面试重点知识
C++ 面试指北介绍
对于 C++ 语法重点内容进行讲解,包括内存、指针、智能指针、虚函数、C++11、面向对象等等,共计 10w+ 字。
面试重点及复习指南看这里: C/C++后台开发面试重点知识
-
C++ 基础篇 👇
- sizeof 关键字
- sizeof 和 strlen
- 数组做参数退化为指针
- const 关键字
- static 关键字
- volatile 的作用
- C/C++ 字节对齐
- C/C++ 字节序
- C++ 中 class 和 struct 区别
- 宏定义(define)和内联函数(inline)的区别
- 宏定义 (define) 和 typedef 的区别
- explicit 关键字
- C/C++ 中 extern 作用
- extern C 的作用
- mutable 的作用
- C++ 几种类型转换
-
C++面向对象篇 👇
- 面向对象三大特性
- C++ 类成员访问权限
- 重载、重写、隐藏的区别
- C++ 类对象的初始化和析构顺序
- C++ 析构函数可以抛出异常吗?
- C++ 中对象深拷贝和浅拷贝
- C++多态的实现方式
- C++ this 指针
- C++ 虚函数表
- C++ 纯虚函数是什么?
- 为什么 C++ 构造函数不能是虚函数?
- 为什么 C++ 基类析构函数需要是虚函数?
- 为什么C++的成员模板函数不能是 virtual
- sizeof 一个空类大小是多大
-
C++内存管理篇 👇
- C/C++ 内存是什么?
- 深入理解 C/C++ 指针
- 快速搞懂 C/C++ 指针声明
- C/C++内存分区
- C++指针和引用的区别
- 指针传递、值传递、引用传递
- C++ RAII 思想
- C++ 智能指针解析
- 深入理解 C++ shared_ptr
- 深入理解 C++ weak_ptr
- C/C++ malloc-free底层原理
- C++ malloc、new,free、delete 区别
- C/C++ 内存泄露如何检测和避免
- C/C++ 野指针和空悬指针
- 常见的 C/C++ 内存错误
-
C++11 👇
- nullptr 和 NULL的区别
- C++ 类型萃取
持续更新中…
作者: 编程指北
链接: https://csguide.cn/cpp/#%E4%B8%80%E3%80%81%E7%9B%AE%E5%BD%95
来源: https://csguide.cn
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。