OOP知识地图

内容简介

这页是 C++ 面向对象部分的入口。C++ OOP 不只是“类、继承、多态”三件事,更重要的是对象生命周期、构造析构、拷贝控制、资源所有权和运行期多态。

主线关系

class / struct
  -> 封装
  -> 构造和析构
  -> 对象生命周期与拷贝控制
  -> 继承
  -> 多态
  -> RAII / 智能指针 / 现代对象实践

1. OOP 基础

2. 对象特性

这部分是 C++ OOP 的核心,因为它直接决定对象如何创建、复制、销毁,以及资源是否安全。

3. 继承与多态

  • cpp继承:继承方式、构造析构顺序、同名成员、菱形继承。
  • cpp多态:虚函数、虚表、纯虚函数、抽象类、虚析构。

4. 现代 C++ 连接

  • RAII:用对象生命周期管理资源。
  • 智能指针:用所有权模型替代裸 new/delete
  • 移动语义:转移资源所有权。
  • 新对象特性= default= delete、委托构造、移动构造等现代对象规则。

最佳代码实践

  • 对象生命周期优先交给 RAII,不要手动到处写 new/delete
  • 有资源所有权的类必须认真处理拷贝、移动和析构。
  • 能用组合解决的问题,不要急着使用继承。
  • 多态基类如果会通过基类指针删除派生类对象,析构函数必须是虚函数。
  • 成员变量优先私有,通过清晰接口暴露行为。

错误用法

  • 类里有裸指针资源,却只依赖默认拷贝构造。
  • 基类析构函数不是虚函数,却用基类指针删除派生类对象。
  • 到处使用友元破坏封装。
  • 为了复用几个函数就滥用继承。
  • static 成员当成全局变量到处改。

注意事项

  • C++ OOP 和 Java/Python OOP 不同,C++ 对象有更强的值语义、生命周期和资源管理语义。
  • 学 OOP 时要把“语法规则”和“对象在内存/生命周期中的真实行为”放在一起理解。

学习路径