- 对象和类是 C++ 程序的构建基石。通过将数据和算法(代码)组合成一个单一的单元,C++ 程序表示其所建模系统的各个组件,以及它们之间的交互。
- 公有继承表示对象之间的一种“is-a”关系 —— 派生类的对象可以当作基类对象来使用。这种关系表明基类的接口,连同其不变式和约束,对于派生类来说也是一个有效的接口。与公有继承不同,私有继承不涉及接口。它表达了一种“has-a”或“以...方式实现”的关系。派生类重用了基类提供的实现。通常,组合也能达到相同的效果。可能的话,应优先使用组合;然而,空基类优化以及(较少见的)虚函数重写是使用私有继承的合理理由。
- C++ 中的多态对象是指其行为取决于其类型,且该类型在编译时未知(至少在请求该行为的点上未知)的对象。一个当作基类对象引用的对象,如果其真实类型是派生类,则可以表现出派生类的行为。在 C++ 中,多态行为可通过虚函数实现。
- dynamic_cast 在运行时验证转换的目标类型是否有效:必须是对象的实际类型(即创建对象时的类型)或是其基类。正是后一部分,即检查对象所有可能的基类类型,使得 dynamic_cast 开销较大。