可学答题网 > 问答 > 面向对象技术题库,中级软件设计师题库
目录: 标题| 题干| 答案| 搜索| 相关
问题

阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。 说


阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。 说明:某饭店在不同的时段提供多种不同的餐饮,其菜单的结构图如图10.41所示。 现在采用组合(Composition)模式来构造该饭店的菜单,使得饭店可以方便地在其中添加新的餐饮形式,得到如图10.42所示的类图。其中MenuComponent为抽象类,定义了添加(add)新菜单和打印饭店所有菜单信息(print)的方法接口。类Menu表示饭店提供的每种餐饮形式的菜单,如煎饼屋菜单、咖啡屋菜单等。每种菜单中都可以添加子菜单,例如图10.41中的甜点菜单。类Menultem表示菜单中的菜式。

参考答案
参考解析:

MenuComponent是虚基类,其中要定义添加新菜单纯虚函数,函数体在其派生类Menultem和Menu中实现。空(1)处应填入virtualvoidadd(MenuComponent*menuComponent)=0。在类Menu中定义了列表menuComponents,用于保存添加的新菜单,由std::list::iteratoriter可知列表的类型为MenuComponent*,故空(2)处应填入MenuComponent*。添加菜单时,可以从menuComponents列表的前面添加,也可以从menuComponents列表的后面添加,但通过菜单的输出函数可知,菜单是从列表的后面添加的,因此空(3)处应填入menuComponents->push_back(menuComponent)。iter是迭代器,用于遍历菜单列表menuComponents,空(4)处应填入(*iter)。在主函数,打印饭店所有菜单信息的函数调用为allMenus->print()。

分类:面向对象技术题库,中级软件设计师题库
相关推荐

1、阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。

阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。说明:某饭店在不同的时段提供多种不同的餐饮,其菜单的结构图如图10.43所示。现在采用组合(Composition...

2、阅读以下说明和流程图,将应填入____处的字句写在答题纸的对应栏内。下面的

阅读以下说明和流程图,将应填入____处的字句写在答题纸的对应栏内。下面的流程图旨在统计指定关键词在某一篇文章中出现的次数。设这篇文章由字符A(0),…,A(n-1)依次组成...

3、阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。

阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。说明:某大型商场内安装了多个简易的纸巾售卖机,自动售出2元钱一包的纸巾,且每次仅售出一包纸巾。纸巾...

4、阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。 说明:

阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。说明:一个简单的图形编辑器提供给用户的基本操作包括:创建图形、创建元素、选择元素以及删除图形。图形编...

5、阅读下列说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。说明:设某

阅读下列说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。说明:设某一机器由n个部件组成,每一个部件都可以从m个不同的供应商处购得。供应商j供应的部件i具有重量Wij...

6、阅读下列说明和图,回答问题1至问题4,将解答填入答题纸的对应栏内。 说明:

阅读下列说明和图,回答问题1至问题4,将解答填入答题纸的对应栏内。说明:某医院欲开发病人监控系统。该系统通过各种设备监控病人的生命体征,并在生命体征异常时向医生和护理...