У меня есть четыре класса, два из них итераторов:Как меняются разные итераторы сост.
LinkedList<T> -- holds the pointer to dummy node
LinkedListNode<T> -- Node with next and previous pointers and data T
LinkedListIterator<T> -- holds a pointer to LinkedListNode
LinkedListConstIterator<T> -- holds a pointer to LinkedListNode
Они оба только нужно реализовать вперед функциональность итератора.
Как бы функции в моем итераторе const были разными в этом случае? Означает ли это, что когда я возвращаю указатель или что-либо пользователю, я должен сделать его const?
В идеале ваш 'LinkedListConstIterator' будет содержать свои указатели как нечто вроде' const LinkedListNode * ', так что решение относительно типа возврата еще более очевидно: вариант «const» просматривает представление const для базовых узлов и значений - если вы не хотите разрешить редактирование структуры списка (например, удаление элемента, указывающего на с помощью константного итератора), и в этом случае вам нужно пройти через не-const-представление узлов, возможно, как «LinkedListNode *». –
seh