试题与答案

[说明]对多个元素的聚合进行遍历访问时,需要依次推移元素,例如对数组通过递增下标的方

题型:问答题

题目:

[说明]

对多个元素的聚合进行遍历访问时,需要依次推移元素,例如对数组通过递增下标的方式,数组下标功能抽象化、一般化的结果就称为迭代器(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;

(4)处填()。

答案:

参考答案:

&bookShelf

试题推荐
题型:填空题 案例分析题

血浆是人体内环境的重要组成部分,其稳态的维持是机体进行正常生命活动的必要条件。请据图回答下列问题:

血液在人体内对抗病原体的过程中发挥着重要作用,其中吞噬细胞吞噬并分解多种病原体,在()免疫中发挥重要作用;此外,在体液免疫过程中,吞噬细胞能够对病原体进行必要的摄取和处理,结合其他细胞的作用,使相应细胞受到刺激并经过一系列的增殖分化成为()细胞分泌特定抗体发挥重要作用。

查看答案
微信公众账号搜索答案