public: \
typedef structName* iterator; \
structName *GetTable(
Int_t i)
const { \
if (fLastIndx !=
UInt_t(i)) { \
((classChairName *)this)->fLastIndx = i; \
((classChairName *)this)->fLastRow = \
((classTableName *)GetThisTable())->GetTable(i); \
}; return (structName *)fLastRow; }; \
structName &operator[](
Int_t i){ assert(i>=0 && i < GetNRows());
return *GetTable(i); } \
const structName &operator[](
Int_t i)
const { assert(i>=0 && i < GetNRows());
return *((
const structName *)(GetTable(i))); }\
structName *begin() const { return GetNRows()? GetTable(0):0;}\
structName *end()
const {
Int_t i = GetNRows();
return i? GetTable(i):0;}