当前位置: 首页 > article >正文

Linux C/C++后台开发面试重点知识

Linux C/C++后台开发面试重点知识

文章转载自个人博客: Linux C/C++后台开发面试重点知识

image.png

查看目录

一、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
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


http://www.kler.cn/a/17922.html

相关文章:

  • 设计模式之装饰器模式(SSO单点登录功能扩展,增加拦截用户访问方法范围场景)
  • 【大数据学习 | flume】flume的概述与组件的介绍
  • 测试工程师简历「精选篇」
  • 传奇996_21——龙岭事件
  • C++《继承》
  • 「Py」Python基础篇 之 Python都可以做哪些自动化?
  • 互联网摸鱼日报(2023-05-08)
  • 虚拟环境中的 CPU 优化
  • YAPI--撰写接口文档的平台
  • ruby环境中的irb
  • 奇数单增序列
  • 有限等待忙等、让权等待死等、互斥遵循的几大原则——参考《天勤操作系统》,柳婼的博客
  • 基于C#开发 B/S架构的实验室管理系统 云LIS系统(MVC + SQLserver + Redis)
  • HTTP的特点
  • Python入门(三)变量和简单数据类型(二)
  • MySQL基础(十四)视图
  • 设计模式——模板方法模式
  • 数据结构与算法基础(王卓)(35):交换排序之快排【第二阶段:标准答案、初步发现问题】
  • 看不懂具体的代码方法?这样向chatgpt提问
  • (22)目标检测算法之 yolov8模型导出总结
  • Scala Option类型,异常处理,IO,高阶函数
  • Ceph入门到精通-OSD 故障排除
  • TCP/IP相关面试题
  • 什么是数据库中的流程控制
  • gpt.4.0-gpt 国内版
  • 华为网工实验(VRRP多网关负载分担,OSPF基础操作)