August 2021
Intermediate to advanced
450 pages
5h 35m
Chinese
Container是一个非常简单的类层次的例子,所谓类层次(class hierarchy)是指通过派生(如:public)创建的一组类,在格中有序排列。我们使用类层次表示具有层次关系的概念,比如“消防车是卡车的一种,卡车是车辆的一种”以及“笑脸是一个圆,圆是一个形状”。在实际应用中,巨大的类层次很常见,动辄包含上百个类,不论深度还是宽度都很大。不过在本节,我们只考虑一个半真实的经典例子,那就是屏幕上的形状。
箭头表示继承关系。例如,类Circle派生自类Shape。为了用代码表示这个简单的层次关系,我们需要首先声明一个定义了所有形状一般属性的类:
这个接口自然是一个抽象类:对于每种Shape来说,它们的表示各不相同(除了vtbl指针的位置)。基于上面的定义,我们就能编写函数来操纵形状指针的向量了:
为了定义一种具体的形状,首先必须指明它是一个Shape,然后再规定其特有的属性(包括虚函数):
到目前为止,Shape和Circle的例子与Container和Vector_container的例子相比并未涉及新的东西,但是我们可以继续构造: ...
Read now
Unlock full access