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 指针
- 常函数与常对象
六、易错点
struct 和 class 在 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++继承与多态]]