问题

【C++代码】

#include <list>

#include <iostream>

#include <string>

using namespace std;

class AbstractFile{

protected:

string name; //文件或目录名称

public:

void printName(){cout$amp; virtual void addChild(AbstractFile *file)=0; //给一个目录增加子目录或文件}

virtual void removeChild(AbstractFile *file)=0; //删除一个目录的子目录或文件

virtual list<AbstractFile*> *getChildren()=0; //获得一个目录的子目录或文件

};

class File:public AbstractFile{

public:

File(string name) {(1) = name;}

void addChild(AbstractFile *file){return;}

void removeChild(AbstractFile *file){return;}

(2) getChildren(){return (3) ;}

};

class Folder :public AbstractFile{

private:

list <AbstractFile*> childList: //存储子目录或文件

public:

Folder(string name){ (4) name;}

void addChild(AbstractFile*file){childList.push_back(file);}

void removeChild(AbstractFile*file){childList.remove(file);}

list<AbstractFile*>*getChildren(){return (5) ;}

};

void main(){

//构造一个树形的文件/目录结构

AbstractFile *rootFolder=new Folder("c:\\ ");

AbstractFile*compositeFolder=new Folder("composite");

AbstractFile *windowsFolder=new Folder("windows");

AbstractFile*file=new File("TestCompositejava");

rootFolder->addChild(compositeFolder);

rootFolder->addChild(windowsFolder);

compositeFolder->addChild(file);

参考答案
您可能感兴趣的试题
  • 【Java代码】import Java.util.ArrayList;import java.util.List;(1) class AbstractFile{protected String nam
  • 【C程序】#include/*此处为栈类型及其基本操作的定义,省略*/int main(){STACK station;int state[1000];int n; /*车厢数*/i
  • 试题一(共 15 分)阅读以下说明,回答问题 1 至问题3,将解答填入答题纸的对应栏内。【说明】某公司针对通信手段的进步,需要将原有的业务系统扩展到互联网上。运行维护部门需要针对此需求制定相应的技术安
  • 试题四(共 15 分)阅读以下说明,回答问题 1 至问题3,将解答填入答题纸的对应栏内。【说明】信息系统是一个复杂的人机系统,系统内外环境以及各种人为的、机器的因素都在不断地变化。为了使系统能够适应这
  • 【问题 3】(5 分)图1-2 中有两条数据流是错误的,请指出这两条数据流的名称,并改正。(注:数据流的起点和终点均采用图中的符号和描述)
  • 【问题 4】(4 分)根据【说明】 ,将图 1-2中 P1~P4 的处理名称填充完整。
相关内容