C++ 多态、虚函数与多重继承深入解析
1. 空基类优化与私有继承
在某些情况下,创建大量派生对象时,空基类优化能显著节省内存。而使用私有继承的另一个原因与虚函数有关。
2. 多态与虚函数
2.1 多态的概念
在之前讨论的公共继承中,派生对象可在需要基类对象的任何地方使用。但很多时候,了解对象的实际类型很有用。例如:
Derived d;
Base& b = d;
b.some_method(); // b 实际上是 Derived 对象
some_method() 是基类 Base 公共接口的一部分,派生类 Derived 也必须保证其有效性。但在基类接口约定的灵活性范围内,它可以有不同的实现。
以鸟类层次结构为例, FlyingBird 类有 fly() 方法,所有从它派生的具体鸟类类都必须支持飞行。但鹰和秃鹫飞行方式不同,所以在派生类 Eagle 和 Vulture 中, fly() 方法的实现可以不同。任何操作任意 FlyingBird 对象的代码都可以调用 fly() 方法,但结果会因对象的实际类型而异。
2.2 虚函数的实现
在 C++ 中,这种功能通过虚函数实现
超级会员免费看
订阅专栏 解锁全文
365

被折叠的 条评论
为什么被折叠?



