C++学习路线---加油呀

2023-10-31

转载自 编程剑谱公众号
1、
C++ 基础:C++ 是面向对象的语言,一定要理解清楚面向对象的思想,先把 C++ 的基础知识点打牢,刚从面向过程中转变过来,一定一定要适应面向对象的写法。

在学习面向对象的时候,也要考虑如何用面向过程去实现面向对象(其实也就是结构体中有一个成员是函数指针),对于 C++ 的基础知识,我简单罗列如下:

1、const的用法
2、引用的用法
3、#define用法
4、构造函数
5、析构函数
6、拷贝构造
7、new、delete 和 malloc、free 的区别
8、访问限定符 public、private、protected
9、深拷贝和浅拷贝
10、友元函数
11、static
12、内联函数
13、继承、虚继承
14、钻石继承问题
15、同名覆盖问题
16、虚函数表
17、虚指针
18、虚函数、纯虚函数
19、接口
20、多态
21、重写
22、重载
23、函数重载
24、运算符重载
25、流类库和文件

书籍:
<C++ Primer> 第 5 版先全面的了解清楚 C++ 的基础。

2、
C++ 进阶:函数模板、类模板,C++ 中对于异常的处理,对于继承和多态底层的理解,对于 virtual 底层的理解等。

对于 C++ 中 boost 库八大智能指针的掌握与理解,其核心是理解并且剖析过相应的源码, <scoped_ptr/shared_ptr/weak_ptr> 这三个是最核心的智能指针,理解清楚智能指针的本质是,内存的申请与释放全部交给了对象管理,以避免人为疏忽,造成内存泄露。

书籍:
<Effective C++>
<more Effectice C++>
<深度探索 C++ 对象模型>
<C++ 沉思录>

3、
STL 源码:对于 STL 中的容器剖析,常见容器有 list、vector、stack、queue、map 等,考察自动扩容的原理、map 的底层实现(RBtree),源码是必须手动至少剖析一遍的。

对于迭代器、空间配置器的理解,比如:一级空间配置器、二级空间配置器的运用场合分别是什么?一二级空间配置器的本质是什么,如何用内存池去管理?所存在的问题又有哪些,源码又是如何实现的等等,这些问题都需要去思考。

书籍:
<STL 源码剖析>
<泛型编程与STL>

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++学习路线---加油呀 的相关文章

  • 快速实现 WIFI MQTT通信详解

    WIFI MQTT接入ONE NET云平台 一 本例程实现功能介绍 二 云平台操作流程 三 硬件接线图 材料清单 四 完整代码 代码解析 五 代码实验现象 前言 MQTT是一种基于TCP的物联网通信协议 在物联网领域应用非常广泛 基本上所有

随机推荐

  • kafka/bin/kafka-run-class.sh: line 342: exec: java: not found

    本来jps看了下 kafka和zookeeper都起来了 手痒 非要换宝塔的进程守护管理器 选目录为 home kafka 命令为 home kafka bin zookeeper server start sh home kafka co
  • 投票同款特效样式

    先看效果 再看代码 查看更多
  • STM32实现扫频功能

    简介 我们都知道 在信号发生器中 有一个扫频模式 指信号发生器在指定的扫描时间内从起始频率到终止频率变化输出 扫频模式支持线性扫频 对数扫频 和步进扫频三种方式 起始频率和终止频率 起始频率和终止频率是频率扫描的频率上限和下限 信号发生器总
  • DB2时间日期函数_悟sphenic_新浪博客

    DB2时间日期函数 gt DAYNAME 返回一个大小写混合的字符串 对于参数的日部分 用星期表示这一天的名称 例如 Friday DAYOFWEEK 返回参数中的星期几 用范围在 1 7 的整数值表示 其中 1 代表星期日 DAYOFWE
  • react获取当前路由

    使用useHistory import useLocation from react router const location useLocation const routerName gt console log location pa
  • URL缓存机制

    class LRUCache class Node int key int value Node pre Node post public Node public Node int key int value this key key th
  • 券商如何借助企业微信、小程序、视频号提高营收转化?

    近年来 小程序 视频号 企业微信联合打造了一个新的商业通信圈 越来越多的品牌及券商企业都入驻其中 如今 具有直连12 亿微信客户优势的企业微信 商品交易总额近3万亿的小程序和日活跃用户数量超5亿的视频号已在公域流量沉淀私域方面形成了双箭头联
  • 使用StringRedisTemplate进行redis连接操作

    1 引入jar 需要jar有三个 如下
  • pytest + yaml 框架 -22.validate 校验返回结果的几种方式

    前言 validate 校验返回结果的几种方式总结 环境要求 Python 大于等于3 8版本 低于python3 8版本不支持 Pytest 大于等于 7 2 0 pip 安装插件 最新版本v1 1 9 pip install pytes
  • eNSP静态路由实验(1)

    一 实验要求 二 实验步骤 1 建立模型并划分网段 2 配置IP 配置静态路由 r1 r2 r3 r4 r5
  • NVIDIA显示下载Java_大佬们!我的NVIDIA Geforce Experience 一直下载更新怎么办?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 官方给的方法试了下 成功了 The installer package of the NVIDIA GeForce Experience Quadro Experience applicatio
  • Qt下实现欧姆龙PLC 串口发送HOSTLINK(FINS)模式

    文章目录 前言 一 HOSTLINK协议说明 二 校验码 FCS 计算 三 示例完整代码 四 下载链接 总结 前言 本文讲述了Qt下模拟串口调试工具发送HOSTLINK FINS 模式 主要进行了HR保持区的字和位的读写 对HOSTLINK
  • nvm的安装及全局依赖配置(详细)

    前言 刚开始只是要下载了cnpm的全局依赖 npm install g cnpm registry http registry npmmirror com 但是报错了 然后开始一系列的尝试 1 更改node global和node cach
  • C++数据结构X篇_01_数据结构的基本概念

    从本篇开始学习数据结构相关概念 数据结构的基本概念 1 数据结构的相关概念 1 1 为什么要学习数据结构 1 2 数据结构中的基本概念 2 算法 2 1 算法的概念 2 2 算法和数据结构的区别 2 3 算法特性 2 4 算法效率的度量 2
  • Python实现时序图

    Python实现时序图 时序图是一种展示程序执行过程 调用流程等的流程图 Python语言作为一种通用编程语言 同样可以用于绘制时序图 本文将介绍如何使用Python实现时序图 在Python中 我们可以使用matplotlib库来绘制时序
  • 基于树莓派的智能家居开发项目总结

    目录 一 项目简单总结下 二 代码实现 1 主函数mainPro c 2 控制设备的头文件inputCommand h 3 外接设备的头文件controlDevices h 4 服务器sockeContrl c 5 语音模块voiceCon
  • 启动项详解

    启动项详解 启动项目就是开机的时候系统会在前台或者后台运行的程序 当Windows 操作系统 完成登录过程 进程表中出现了很多的进程 Windows在启动的时候 自动加载了很多程序 许多程序的自启动 给我们带来了很多方便 这是不争的事实 但
  • 使用Python的imap和email模块读取邮件

    SMTP发送邮件的博文很多 但完整读取邮件的较少 本文主要是Python3读取邮件的编码 同时使用BeautifulSoup解析邮件内容 Python版本信息 如下 Python 3 8 2 tags v3 8 2 7b3ab59 Feb
  • 分支-20. 计算符号函数的值(10)

    对于任一整数n 符号函数sign n 的定义如下 请编写程序计算该函数对任一输入整数的值 输入格式 输入在一行中给出整数n 输出格式 在一行中按照格式 sign n 函数值 输出该整数n对应的函数值 输入样例 1 10 输出样例 1 sig
  • C++学习路线---加油呀

    转载自 编程剑谱公众号 1 C 基础 C 是面向对象的语言 一定要理解清楚面向对象的思想 先把 C 的基础知识点打牢 刚从面向过程中转变过来 一定一定要适应面向对象的写法 在学习面向对象的时候 也要考虑如何用面向过程去实现面向对象 其实也就