- Ubuntu下使用vcsode配置编译C++的环境
- C++基本概念
- 变量的基础语法
- 命名空间
- 引用
- Makefile(待更新)
- cmake安装,工程目录,简单的使用模版
- 条件符号
- 类型模版
- 结构体,指针类型, &在等号左边是取引用,在等号右边是取地址,这里是取地址
- C语言的强转类型
- 引用的案例
- 指针案例
- 循环
- 条件判断
- C++函数
- 函数的传值,传引用,传指针
- 函数默认参数的注意事项
- lambda函数
- 内联函数
- 宏的定义
- 实现函数重载的条件
- 数组
- C风格的字符串
- 类和结构体
- 结构体
- 类(主要记录了使用)
- 友元函数/类
- 类的继承
- 多继承
- 菱形继承
- 继承的一些特殊情况
- 重载与重写
- 实现函数重载的条件
- 单继承中构造函数和析构函数的调用顺序
- 派生类中的成员变量和基类中的成员变量名冲突
- 基类派生类成员变量名称冲突
- 隐藏
- 复习类中的静态成员变量和普通成员变量的区别
- 继承中的静态成员特性
- 两种语言的字符串指针简单看下内存问题
- 进程线程
- 进程在内存可用的主要的三个布局
- 虚拟地址空间
- 总结
- 函数的堆栈详细调用过程
- 栈帧的基础知识
- 寄存器
- 函数的调用1: 压栈
- 函数的调用2: call指令
- 函数的调用2: call指令 call sum的过程
- 函数的调用3: 进入sum函数的第一件事情,左括号跟第一句之间干的事情
- 函数的调用4: 在新开辟的空间里面
- 函数的右括号: 归还栈空间并且回到原来的地方
- 掌握形参带默认值的函数
- 内联函数的深入理解
- 函数重载(深入)
- const详解
- const与指针的结合
- Const与一级指针的结合
- const和二级指针的结合
- 几种不同的const结合方法
- 二级指针公式(类型转换)
- 二级指针结合const防止报错的方法
- 几道题目训练
- 深入理解引用
- 左值引用和右值引用
- const 结合一级指针
- 指针覆盖引用的案例,学会还原指针/引用
- new delete 基础
- 开辟数组内存
- new的几种变种
- OOP编程, this 指针
- 一个OOP的思想案例: 用类描述商品实体
- this指针
- OOP 练习,用OOP写一个顺序栈
- 构造函数和解析函数
- 对象的浅拷贝和深拷贝
- 深拷贝函数: 自定义拷贝函数
- 为什么深拷贝不用memcopy用for循环?
- 赋值重载函数
- 完整版代码: 赋值重载函数+拷贝构造函数
- 函数模版的基本使用
- 通过符号表深入理解函数模版
- 函数模版的重载
- 函数模版总结
- 类模版的定义
- 类模版的特化
- 继承中类的模版使用
- 总结
- 多态引入
- 怎么理解静态联编
- 运算符重载
- 友元函数(深入)
- 友元类
- 动态多态
- 虚函数
- 虚函数指针
- 虚函数表
- 虚函数的表指针
- 动态绑定
- 从编译器的角度看动态绑定
- 设计思考: 什么时候将函数设计成虚函数
- 纯虚函数
- 抽象基类
- 抽象基类的设计问题
- 虚析构函数
- 抛出异常
- 捕获异常
- C++中隐式类型转换
- 显示类型转换 const_cast
- 显示类型转换 static_cast
- dynamic_cast
- dynamic_cast 安全转换的流程
- STL 概念
- STL分类
- vector容器
- deque容器(双端队列容器)
- deque容器(双端队列容器)
- 顺序容器总结: vector, deque, list
- 标准容器-容器适配器
- queue(队列)
- 为什么queue, stack 依赖deque
- priority queue为什么依赖于vector?
- 关联容器
- 有序的关联容器map
- 迭代器与可迭代对象
- STL中的函数对象
- 算法