Changeset 248 for code/branches/objecthierarchie/src/Iterator.h
- Timestamp:
- Nov 26, 2007, 1:57:37 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/objecthierarchie/src/Iterator.h
r239 r248 10 10 Iterator() 11 11 { 12 this->elementForwards_ = ClassIdentifier<T>::getIdentifier()->objects_->first_; 13 this->elementBackwards_ = ClassIdentifier<T>::getIdentifier()->objects_->last_; 14 this->iteratingForwards_ = true; 12 this->element_ = 0; 15 13 } 16 14 17 Iterator <T> operator++(int step)15 Iterator(ObjectListElement<T>* element) 18 16 { 19 Iterator<T> copy = *this; 20 21 if (step < 1) 22 step = 1; 23 24 for (int i = 0; i < step; i++) 25 this->elementForwards_ = this->elementForwards_->next_; 26 27 return copy; 17 this->element_ = element; 28 18 } 29 19 30 20 Iterator<T> operator++() 31 21 { 32 this->element Forwards_ = this->elementForwards_->next_;22 this->element_ = this->element_->next_; 33 23 return *this; 34 }35 36 Iterator<T> operator--(int step)37 {38 Iterator<T> copy = *this;39 40 if (this->iteratingForwards_)41 {42 this->iteratingForwards_ = false;43 }44 else45 {46 if (step < 1)47 step = 1;48 49 for (int i = 0; i < step; i++)50 this->elementBackwards_ = this->elementBackwards_->prev_;51 }52 24 } 53 25 54 26 Iterator<T> operator--() 55 27 { 56 if (this->iteratingForwards_) 57 this->iteratingForwards_ = false; 58 else 59 this->elementBackwards_ = this->elementBackwards_->prev_; 60 28 this->element_ = this->element_->prev_; 61 29 return *this; 62 30 } … … 64 32 T* operator*() 65 33 { 66 if (this->iteratingForwards_) 67 return this->elementForwards_->object_; 68 else 69 return this->elementBackwards_->object_; 34 return this->element_->object_; 70 35 } 71 36 72 37 T* operator->() const 73 38 { 74 if (this->iteratingForwards_) 75 return this->elementForwards_->object_; 76 else 77 return this->elementBackwards_->object_; 39 return this->element_->object_; 78 40 79 41 } … … 81 43 operator bool() 82 44 { 83 if (this->iteratingForwards_) 84 return (this->elementForwards_ != 0); 85 else 86 return (this->elementBackwards_->prev_ != 0); 45 return (this->element_ != 0); 87 46 } 88 47 … … 92 51 std::cout << "Warning: Comparing the " << ClassIdentifier<T>::getIdentifier()->getName() << "-List-Iterator with " << compare << " has no effect. Only comparison with 0 works.\n"; 93 52 94 if (this->iteratingForwards_) 95 return (this->elementForwards_ != 0); 96 else 97 return (this->elementBackwards_->prev_ != 0); 53 return (this->element_ != 0); 98 54 } 99 55 100 101 56 private: 102 ObjectListElement<T>* elementForwards_; 103 ObjectListElement<T>* elementBackwards_; 104 bool iteratingForwards_; 57 ObjectListElement<T>* element_; 105 58 }; 106 59 }
Note: See TracChangeset
for help on using the changeset viewer.