【C++代码】#include list#include iostream#include stringusing namespace std;class AbstractFile{protected:string name; //文件或目录名称public:void printName(){coutname;} //打印文件或目录名称virtual void addChild(AbstractFile *file)=0; //给一个目录增加子目录或文件}virtual void removeChild(AbstractFile *file)=0; //删除一个目录的子目录或文件virtual listAbstractFile* *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);}listAbstractFile**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);}

【C++代码】

#include <list>

#include <iostream>

#include <string>

using namespace std;

class AbstractFile{

protected:

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

public:

void printName(){cout<<name;} //打印文件或目录名称

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);


相关考题:

促进Th1细胞发育的是A.LT-1B.LT-6C.LT-8D.LT-10E.LT-12

抑制Th1细胞发育的是A.LT-1B.LT-6C.LT-8D.LT-10E.LT-12

在网页中显示特殊字符,如果要输入“ A.lt;B.Lt;C.ltD.lt;

以下哪个资源定位器的写法是正确是?()A.http://www.wls.com/lt/lt.htmB.http:||www.wls.com/lt/lt.htmC.http://www.wls.com\lt\lt.htmD.http:||www.wls.com\lt\lt.htm

有以下程序includemain(){int a=5,b=lt; t=(a 有以下程序 #include<stdio.h> main() { int a=5,b=lt; t=(a<<2)|b;printf("%d\n",t); } 程序运行后的输出结果是______。A.21B.11C.6D.1

若有运算符:&gt;、一、&lt;&lt;、%、sizeof,则它们按优先级(由高至低)的正确排列顺序为( )。A.%、sizeof、&gt;、&lt;&lt;、=B.sizeof、%、&gt;、一、&lt;&lt;C.sizeof、&lt;&lt;、&gt;、%、=D.sizeof、%、&lt;&lt;、&gt;、=

正常售票的快捷键是()。A.lt+PB.trl+PC.lt+TD.lt+S

设有一列表lt,实现下列功能: 判断lt中是否包含数字0 向lt新增数字0 返回数字0所在lt中的索引 lt的长度 lt中最大元素 清空lt

7、已知lt=[1,2,3],下面表达式能够修改lt为[1,2,3,4]的是A.lt+=4B.lt.append(4)C.lt.insert(3,4)D.lt.insert(-1,4)

已知lt=[1,2,3],下面表达式能够修改lt为[1,2,3,4]的是A.lt+=4B.lt.append(4)C.lt.insert(3,4)D.lt.insert(-1,4)