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!=