阅读下列说明和C++代码,将应填入 (n) 处的字句写在对应栏内。
[说明]
现欲构造一棵文件/目录树,采用组合(Composite)设计模式来设计,得到的类图如图18-19所示。
[C++代码]
#include<list>
#include<iostream>
#include<string>
uslng namesPace std;
class AbStractFile
protected:
string name; //文件或目录名称
public:
void printName()cout<<name; //打印文件或目录名称
virtual coid addChild(AbstractFile *file)=0;
//给一个目录增加子目录或文件
virtual void removeChild(AbstractFile *file)=0;
//删除一个目录的子目录或文件
virtual list<AbstractFile*>*getChiidren()=0;
//获得一个目录的子目录或文件
;
class File:public AbstractFile
public:
File(string name)( (1) =name;
void addChild(AbstractFile *file)return;
void removeChild(AbstractFile *file)return;
(2) getChiidren()return (3) ;
;
class Folder:public AbstractFile
private:
list<AbstractFile*>childList; //存储子目录或文件
public:
Folder(string name) (4) =name;
void addChiid(AbstractFile *file)chiidList.push_back(file);
void removeChiId(AbstractFile *file) chiidList.remove(file);
list<AbstractFile*>*getchildren() return (5) ;
;
void msin()
//构造一个树形的文件/目录结构
AbstractFile *rootFolder=new Folder("C:\\");
AbstractFile *compositeFolder=new Folder("composite");
AbstractFile *windowsFolder=new Folder("windows");
AbstractFile *file=new File("TestComposite.java");
rootFolder->addChild(compositeFolder);
rootFolder->addChiid(windowsFolder);
compositeFolder->addChiid(file);
(1)处填()。
参考答案:this->name