Ваш class Book
содержит struct AuthorListNode
и указатель на тип struct AuthorListNode
, который используется в качестве указателя на начальный узел в связанном списке:
class Book {
struct AuthorListNode {
Author data;
AuthorListNode* next;
};
...
private:
...
AuthorListNode* authors; // linked list of pointers to authors
...
};
В итераторе для Book::iterator Book::begin()
, it->pos = authors;
устанавливает pos
член итератора it
в начало вашего связанного списка, возвращая указатель it
с инициализированным * pos
членом, указывающим на начало связанного списка, позволяя вам выполнить итерацию с начала authors
.
(примечание: AuthorIterator::pointer AuthorIterator::operator->()
имеет return &(pos->data);
, так как & AlanBirtles в своем ответе, используя it->pos
, вполне может быть ошибкой в документация)