ROOT logo
ROOT » CORE » CONT » TIter

class TIter


Collection abstract base class. This class describes the base
protocol all collection classes have to implement. The ROOT
collection classes always store pointers to objects that inherit
from TObject. They never adopt the objects. Therefore, it is the
user's responsability to take care of deleting the actual objects
once they are not needed anymore. In exceptional cases, when the
user is 100% sure nothing else is referencing the objects in the
collection, one can delete all objects and the collection at the
same time using the Delete() function.

Collections can be iterated using an iterator object (see
TIterator). Depending on the concrete collection class there may be
some additional methods of iterating. See the repective classes.

TCollection inherits from TObject since we want to be able to have
collections of collections.

In a later release the collections may become templatized.


/* */

Function Members (Methods)

public:
TIter(TIterator* it)
TIter(const TIter& iter)
TIter(const TCollection* col, Bool_t dir = kIterForward)
virtual~TIter()
TIter&Begin()
static TClass*Class()
static TIterEnd()
const TCollection*GetCollection() const
Option_t*GetOption() const
virtual TClass*IsA() const
TObject*Next()
Bool_toperator!=(const TIter& aIter) const
TObject*operator()()
TObject*operator*() const
TIter&operator++()
TIter&operator=(const TIter& rhs)
Bool_toperator==(const TIter& aIter) const
voidReset()
virtual voidShowMembers(TMemberInspector&)
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
protected:
TIter()

Data Members

private:
TIterator*fIteratorcollection iterator

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

TIter(const TIter& iter)
 Copy a TIter. This involves allocating a new TIterator of the right
 sub class and assigning it with the original.
TIter & operator=(const TIter& rhs)
 Assigning an TIter to another. This involves allocatiing a new TIterator
 of the right sub class and assigning it with the original.
TIter & Begin()
 Pointing to the first element of the container.
TIter End()
 Pointing to the element after the last - to a nullptr value in our case.
TObject * operator()(const char *name)
TIter()
{ }
TIter(const TCollection* col, Bool_t dir = kIterForward)
{ }
TIter(TIterator* it)
{ }
virtual ~TIter()
{ SafeDelete(fIterator); }
TObject * Next()
{ return fIterator ? fIterator->Next() : nullptr; }
const TCollection * GetCollection() const
{ return fIterator ? fIterator->GetCollection() : nullptr; }
Option_t * GetOption() const
{ return fIterator ? fIterator->GetOption() : ""; }
void Reset()
TIter & operator++()
{ Next(); return *this; }
Bool_t operator==(const TIter& aIter) const
Bool_t operator!=(const TIter& aIter) const
TObject * operator*() const
{ return fIterator ? *(*fIterator): nullptr; }