问答题 阅读下列说明和C++代码,将应填入空白处的字句写在答题纸的对应栏内。
[说明]
某公司的组织结构图如图1所示,现采用组合(Composition)模式来构造该公司的组织结构,得到如图2所示的类图。

图1 某公司的组织结构图

【正确答案】
【答案解析】this->name
virtual void Add(Company*c)=0
virtual void Delete(Company*c)=0
Company*
children
children
root->Add(comp)
comp->Add(comp1) 本题考查组合模式的基本应用。组合模式主要是表达整体和部分的关系。由类图可知Company是ConcreteCompany类、HRDepartment类和FinanceDepartment类的父类,它抽象了3个类的共有属性和行为。
第1空是在构造函数中,被赋值为name,而name是构成函数所带的参数,那么这里是给类的一个属性name赋值,因此这空答案为this->name。
第2空与第3空我们可以根据注释来完成,根据题目的描述,这里只提供接口,是虚方法,因此第2空与第3空分别应该为virtual voidAdd(Company*c)=0和virtualvoid Delete(Company*c)=0,这两个方法的参数可以从后面类的相应方法中获得。
第4空根据注释可以推导出应该填Company*。第5空与第6空的答案应该一致,都应该为children。
第7空和第8空在main函数中,用来创建组件结构图,根据题目提供的图,我们可以知道,创建了上海分公司接口后,应该将其添加至root下,因此第7空答案为root->Add(comp),同样的道理,第8空的答案为comp->Add(comp1)。