跳转至

C & C++

我对C++的了解,仅限于C with Class。事实上,现代C++已经引入了非常多的新特性,这也正是这一系列笔记将要记录的。

面向对象编程(Object-Oriented Programming, OOP)有四个基本特性:

  • 封装(Encapsulation):将数据(属性)和操作数据的方法(行为)绑定在一个单元(类)中,并对外隐藏内部实现细节。
    • 隐藏复杂性:用户只需关注接口,无需了解内部逻辑。
    • 保护数据:通过访问控制(如 private/public)防止外部直接修改敏感数据。
  • 继承(Inheritance):允许一个类(子类)基于另一个类(父类)构建,继承其属性和方法,并可扩展或修改功能。
    • 代码复用:避免重复编写公共代码。
    • 层次化设计:通过抽象表达“is-a”关系(如 DogAnimal)。
  • 多态(Polymorphism):同一操作作用于不同对象时,可产生不同的行为。通常通过方法重写(Override)或接口实现。
    • 接口统一:不同对象响应相同方法名,简化调用逻辑。
    • 灵活扩展:新增子类无需修改现有代码。
  • 抽象(Abstraction):提取核心特征并忽略非关键细节,通过抽象类或接口定义规范。
    • 简化复杂度:聚焦高层次逻辑,隐藏具体实现。
    • 强制约束:通过接口确保子类实现必要功能。