Item39–明智而审慎地使用 private 继承
人话版本 1. 正常人的做法:组合 (Composition) 想象你要造一辆 “汽车”。 你也知道,汽车需要 … 阅读更多
人话版本 1. 正常人的做法:组合 (Composition) 想象你要造一辆 “汽车”。 你也知道,汽车需要 … 阅读更多
我们之前的 Item(如 32, 34, 36)都在讨论 Public Inheritance(公有继承),它 … 阅读更多
1. 诡异的现象:函数与参数的“精神分裂” 假设我们设计一个图形类体系,绘制图形时可以指定颜色。基类提供了一个 … 阅读更多
1. 现象:行为分裂(Schizophrenic Behavior) 让我们看一个反面教材。假设有一个基类 B … 阅读更多
1.考虑虚函数的替代方案 核心思想:把“做什么”和“怎么做”分开 传统的 virtual 函数把“接口声明”和 … 阅读更多
这个 Item 讨论的是纯虚函数、非纯虚函数(普通虚函数)和非虚函数在设计意图上的巨大差异。 1. 核心概念: … 阅读更多
1. 核心现象:名称遮掩 (Name Hiding) 一句话总结:在 C++ 中,子类中的名称会遮掩(Hide … 阅读更多
核心原则 Item 32 的金句:Public Inheritance means “is-a&# … 阅读更多
核心痛点:编译级联 (Compilation Cascades) 在 C++ 中,如果头文件 A.h #inc … 阅读更多
1. Inlining 的本质:以空间换时间 inline 函数背后的思想是:将“函数调用”替换为“函数本体代 … 阅读更多