itgle.com

【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 remo

题目

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


相似考题
更多“【C++代码】#include &lt;list&gt;#include &lt;iostream&gt;#include &lt;string&gt;using namesp ”相关问题
  • 第1题:

    有以下程序includemain(){int a=5,b=lt; t=(a<<2)|b;printf("%d\n",t);}程序运行后的

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

    A.21

    B.11

    C.6

    D.1


    正确答案:A
    解析:本题主要考查了C语言的逻辑运算符,先将变量a,b的值转换为2进制数,a=00000101,b=00000001,a先左移 2位结果为00010100,再与b按位或运算,结果为00010101,转换为十进制数为21,因此,选项A是正确的。

  • 第2题:

    正常售票的快捷键是()。

    A.lt+P

    B.trl+P

    C.lt+T

    D.lt+S


    正确答案:D

  • 第3题:

    7、已知lt=[1,2,3],下面表达式能够修改lt为[1,2,3,4]的是

    A.lt+=4

    B.lt.append(4)

    C.lt.insert(3,4)

    D.lt.insert(-1,4)


    lt.append(4);lt.insert(3,4)

  • 第4题:

    若有运算符:>;、一、<;<;、%、sizeof,则它们按优先级(由高至低)的正确排列顺序为( )。

    A.%、sizeof、>;、<;<;、=

    B.sizeof、%、>;、一、<;<;

    C.sizeof、<;<;、>;、%、=

    D.sizeof、%、<;<;、>;、=


    正确答案:D
    主要考查运算符的优先级。sizeof的优先级最高,其次是%<<、>,优先级最低的是“=”。

  • 第5题:

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


    错误

  • 第6题:

    已知lt=[1,2,3],下面表达式能够修改lt为[1,2,3,4]的是

    A.lt+=4

    B.lt.append(4)

    C.lt.insert(3,4)

    D.lt.insert(-1,4)


    s += "you";