早教吧 育儿知识 作业答案 考试题库 百科 知识分享
早教吧考试题库频道 --> 计算机类考试 -->软考中级 -->

阅读下列函数说明和C++代码,回答问题[说明] 对多个元素的聚合进行遍历访问时,需要依次推移元素,

题目

阅读下列函数说明和C++代码,回答问题

[说明]

对多个元素的聚合进行遍历访问时,需要依次推移元素,例如对数组通过递增下标的方式,数组下标功能抽象化、一般化的结果就称为迭代器(Iterator)。模式以下程序模拟将书籍(Book)放到书架(BookShelf)上并依次输出书名。这样就要涉及到遍历整个书架的过程。使用迭代器Iterator实现。图5-1显示了各个类间的关系。以下是C++语言实现,能够正确编译通过。

[图5-1]

[C++代码]

template (1) >

class Iterator{

public:

virtual bool hasNext() = 0;

(2) Object* next() = 0;

};

class Book{

//省略具体方法和属性

};

class BookShelf{

private:

vector books;

public:

BookShelf(){

}

Book* getBookAt(int index){

return &booksindex;

}

int getLength(){

return books. size();

}

};

template

class BookshelfIterator : public (3) {

private:

BookShelf * bookShelf;

int index;

public:

BookshelfIterator(BookShelf *bookShelf){

this->bookShelf = bookShelf;

index = 0;

}

bool hasNext(){//判断是否还有下一个元素

if(index < bookShelf->getLength()){

return true;

}else{

return false;

}

}

Objeot* next(){//取得下一个元素

return bookShelf->getBookAt(index++);

}

};

int main()

{

BookShelf bookShelf;

//将书籍上架,省略代码

Book *book;

Iterator *it = new BookShelfIterator( (4) );

while( (5) ){//遍历书架,输出书名

book=(Book*)it->next();

/*访问元素*/

}

return 0;

}

参考答案
正确答案:(1)Object virtual IteratorObject> &bookShelf it->hasNext()
(1)Object virtual IteratorObject> &bookShelf it->hasNext()
看了阅读下列函数说明和C++代码,...的网友还看了以下:

AA、B、C、D、E、F六种短周期元素,原子序数依次增大.A、E同主族,且E元素原子的核外电子数是 化学 2020-04-08 …

依托孕烯是一种激素类药物,结构如图所示.下列有关依托孕烯的说法正确的是()A.依托孕烯的分子式为C 化学 2020-07-15 …

依托孕烯是一种激素类药物,结构如图所示。下列有关依托孕烯的说法正确的是[]A.依托孕烯的分子式为C 化学 2020-07-15 …

在元素周期表中,某稀有气体元素原子的最外层电子构型为4s24p6,与其同周期的A、B、C、D四种元 化学 2020-07-22 …

单质硫是否能溶于二硫化碳今有A、B、C、D四种短周期元素,他们的核电荷数依次增大,A与C、B与D分别 化学 2020-10-30 …

在元素周期表中,一稀有气体元素原子的最外层电子构型为4s24p6,与其同周期的A、B、C、D四种元素 化学 2020-11-01 …

有序顺序表合并有顺序表A和B.其元素均按从小到大的升序排列,编写一个算法将它们合并成一个新的顺序表C 数学 2020-11-28 …

A、B、C、D是四种短周期元素,它们的原子序数依次增大,其中A、C与B、D分别是同主族元素,又知B、 化学 2020-12-05 …

如图是元素周期表中的一格,依据图中的信息得到的下列认识错误的是()A.该元素原子的质子数为14B.该 化学 2020-12-10 …

元素周期表是学习和研究化学的重要工具.按要求回答下列问题:A、B、C、D、E是短周期元素,其原子序数 化学 2021-01-12 …