阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某公司的组织结构图如图16.10所示,现采用组合(Composition)设计模式来构造该公司的组织结构, 得到如图16一11所示的类图。
【正确答案】正确答案:(1)this一>name (2)virtual void Add(Company*c)=0 (3)virtual void Delete(Company*C)=0 (4)Company* (5)Children (6)Children (7)root一>Add(comp) (8)comp一>Add(compl)
【答案解析】解析:初始化函数中,将形参的值付给成员name,形参的变量名和成员变量的名称相同,需要使this指针指示被赋值的name是类的成员。增加(删除)子公司、办事处或部门用到的函数是Add和Delete。由于C0mpany是抽象类,并作为ConcreteCompany、HRDepartment、FinanceDepartment的基类,ConcreteCompany、HRD印anment继承了其父类的Add和Delete操作,因此在基类中要将Add和DeIete设置为纯虚函数。类ConcreteCompany表示具体的分公司或者办事处,其中的成员children用来存储子公司、办事处或部门,其数据类型应为Company*,当进行增加操作时,要把增加的对象存储在children的最后;当进行删除操作,则需要从children中将对应的对象移除。 (7)处的操作是把上海分公司这个对象加入到北京公司总部中。 (8)处的操作是将南京办事处这个对象加入到上海分公司中。