这一篇进入 C++ 面向对象基础。和前两篇相比,这里不只是“语法更多”,而是开始接触 C++ 程序真正容易在逆向里出现的东西:对象布局、构造析构、访问权限、重载、继承、多态、虚表和项目中的对象关系。

1、学习定位

C++ 面向对象这部分,复盘时要同时看三层:

层次 重点
语法层 namespace、引用、类、对象、构造析构、重载、继承、多态
内存层 对象占用空间、成员偏移、静态成员、虚函数表、构造析构顺序
工程层 如何用类组织项目,如何拆分对象关系、数据存储和菜单流程

后续分析 C++ 程序时,很多“看起来像语法”的东西都会变成内存和调用关系问题。

2、章节目录

编号 章节 主要内容 笔记
0116 01 C++ 入门与命名空间 C++ 特性、控制台框架、iostreamnamespaceusing、嵌套/匿名/别名/合并命名空间、auto 类型推断 0116
0117 02 引用与内存管理 指针与引用、引用参数/返回值、常量引用、数组引用、内存分区、new/delete、内存异常、智能指针 0117
0118 03 函数增强与封装入门 默认参数、函数重载、内联函数、函数模板、递归、回调、面向对象编程、类与结构体、对象模型 0118
0119 04 构造析构与对象特性 类的声明定义、访问权限、构造函数、拷贝构造、委托构造、初始化列表、析构、深浅拷贝、静态/常量成员 0119
0120 05 运算符重载、继承与多态 友元、运算符重载、继承权限、继承内存布局、多继承、菱形继承、多态、虚表、纯虚函数 0120
0121 06 项目:数据信息管理系统 菜单设计、功能分支、对象关系、数据存储、添加过滤、逻辑封装、删除数据、模板化与分类解析 0121

3、整理原则

这一篇后续整理时,不只写“怎么用”,还要尽量补“对象在内存里怎么放、函数怎么调用、构造析构什么时候发生、逆向时能看到什么痕迹”。

4、复盘重点

方向 复盘重点
命名空间 解决命名冲突,理解作用域和链接边界
引用 与指针对比,理解别名、参数传递和生命周期风险
内存 new/delete、RAII、智能指针和异常安全
类对象 成员变量、成员函数、访问权限和对象模型
构造析构 对象生命周期、构造顺序、析构时机和深浅拷贝
继承多态 基类/派生类布局、虚函数表、虚析构和多态调用
项目 把对象关系、菜单流程和数据持久化组织成可维护结构