阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
层叠菜单是窗口风格的软件系统中经常采用的一种系统功能组织方式。层叠菜单(如图5-1示例)中包含的可能是一个菜单项(直接对应某个功能),也可能是一个子菜单,现采用组合(composite)设计模式实现层叠菜单,得到如图5-2所示的类图,层叠菜单(如图5-1示例)。
图5-2 类图
【C++代码】
#include
#include
#include
using namespace std;
class MenuComponent { //构成层叠菜单的元素
(1):
string name; //菜单项或子菜单名称
public:
void printMenu(){cout<<name;}
(2);
virtual void removeMenuElement(MenuComponent *element)=0;
(3);
};
class MenuItem:public MenuComponent {
public:
MenuItem(string name){this->name=name;}
void addMenuElement(MenuComponet *element){return ;}
void removeMenuElement(MenuComponent *element){return ;}
list *getElement(){return NULL;}
};
class Menu :public MenuComponent{
private:
(4);
public:
Menu(string name){this->name=name;}
void addMenuElement(MenuComponent *element)
{elementList.push_back(element);}
void removeMenuElement(MenuComponent *element)
{elementList.remove(element);}
list*getElement(){return &elementList;}
};
int main(){
MenuComponent *mainMenu=new Menu(“Insert”);
MenuComponent *subMenu=new Menu(“Chart”);
MenuComponent *element =new MenuItem(“On This Sheet”);
(5);
subMenu->addMenuElement(element);
return 0;
}