1: // Created by Frank M. Carrano and Tim Henry.
2: // Copyright (c) 2013 __Pearson Education__. All rights reserved.
4: /** Listing C6-2.
5: @file LinkedIterator.cpp */
7: #include "LinkedIterator.h"
9: template <class ItemType>
10: LinkedIterator<ItemType>::
11: LinkedIterator(const LinkedList<ItemType>* someList,
12: Node<ItemType>* nodePtr):
13: containerPtr(someList), currentItemPtr(nodePtr)
14: {
15: } // end constructor
17: template <class ItemType>
18: const ItemType LinkedIterator<ItemType>::operator*()
19: {
20: return currentItemPtr->getItem();
21: } // end operator*
23: template <class ItemType>
24: LinkedIterator<ItemType> LinkedIterator<ItemType>::operator++()
25: {
26: currentItemPtr = currentItemPtr->getNext();
27: return *this;
28: } // end prefix operator++
30: template <class ItemType>
31: bool LinkedIterator<ItemType>::operator==(const
32: LinkedIterator<ItemType>& rightHandSide) const
33: {
34: return ((containerPtr == rightHandSide.containerPtr) &&
35: (currentItemPtr == rightHandSide.currentItemPtr));
36: } // end operator==
38: template <class ItemType>
39: bool LinkedIterator<ItemType>::operator!=(const
40: LinkedIterator<ItemType>& rightHandSide) const
41: {
42: return ((containerPtr != rightHandSide.containerPtr) ||
43: (currentItemPtr != rightHandSide.currentItemPtr));
44: } // end operator!=