C++类与对象.md 2.4 KB


title: C++类与对象 tags:

  • module
  • cpp
  • oop
  • joplin type: module source_type: reconstructed created: 2026-04-22 updated: 2026-04-22 ---

C++类与对象

[!abstract] 这一模块是 C++ 面向对象的主干。重点不是只会写 class,而是理解对象、封装、继承、多态以及资源管理在类设计中的作用。

模块结论

  • [[C++类与对象概念]] 是组织现实对象与程序结构的基础。
  • [[C++继承与多态]] 让代码具备复用和运行期分派能力。
  • 构造、析构、拷贝和运算符重载共同决定对象语义是否可靠。

一、封装

  • 类把属性和行为组织成一个整体。
  • public/protected/private 控制访问边界。
  • 封装既是组织方式,也是约束方式。

二、对象生命周期

  • 构造函数负责初始化。
  • 析构函数负责清理资源。
  • 拷贝构造和赋值运算符决定对象复制语义。

为什么这一点在 C++ 特别重要

  • 因为对象可能直接管理堆资源、文件句柄等外部资源。
  • 一旦复制语义不清,极易出现重复释放或悬空指针。

三、继承

  • 子类复用父类接口和实现。
  • 公有继承最能表达“is-a”关系。
  • 继承关系还会影响成员访问权限和对象布局。

四、多态

  • 依赖虚函数实现运行期分派。
  • 指针或引用指向基类对象时,多态才真正发挥作用。
  • 多态是综合项目里做抽象设计的关键。

五、其他常见能力

  • 友元
  • 运算符重载
  • 静态成员
  • this 指针
  • 常函数与常对象

六、易错点

  • structclass 在 C++ 不只是 C 风格残留,它们默认访问权限不同。
  • 没有虚析构函数的多态基类容易出问题。
  • 运算符重载的目标不是炫技,而是让类型行为更自然。

七、复习提问

  • 封装、继承、多态分别在 C++ 中解决什么问题?
  • 为什么 C++ 类设计必须重视构造、析构和拷贝?
  • 多态为什么往往要和指针或引用一起使用?

来源

  • [[raw/Joplin/编程学习项目/C++学习笔记/2. C++核心编程/3. 函数提高.md]]
  • [[raw/Joplin/编程学习项目/C++学习笔记/2. C++核心编程/4. 类和对象.md]]
  • [[raw/Joplin/编程学习项目/C++学习笔记/2. C++核心编程/6. 基于多态的职工管理系统.md]]

相关页面

  • [[C++]]
  • [[C++类与对象概念]]
  • [[C++继承与多态]]