【发布时间】:2020-01-12 06:59:15
【问题描述】:
在链接下方,我看到了迭代器开始函数的工作原理,但不清楚。
https://secweb.cs.odu.edu/~zeil/cs361/web/website/Lectures/iterators/pages/implem.html
在他们中,我看到了 begin 功能,但不明白它是如何工作的
Book::iterator Book::begin()
{
Book::iterator it;
it->pos = authors;
return it;
};
在这个it 中是对象,但在这个it-> 中,我认为这是在做什么?
operator->() 我认为它像 it.operator->().pos 一样工作,但我不确定
在那之后为什么它返回it 我的问题是return it 是什么我没有得到清晰的图片。
【问题讨论】:
-
这段代码能编译吗?我找不到
Book::iterator的类规范,所以我不知道Book::iterator的成员访问运算符做了什么。没有Book::iterator::operator->()的代码,就无法知道。 -
在本书类中声明
-
->是类成员引用运算符,将it->pos初始化为AuthorListNode* authors;中的第一个节点(因此您的begin()迭代器返回一个指向第一个节点的pos指针在列表中。) -
@AbhiSarkar 也许我是盲人,但我仍然看不到
Book::iterator::operator->()的定义位置。