Listing 7: Class MergeList constructor and destructor

/*
 *  mlist.c
 */
#include "mlist.h"

MergeList::MergeList( int nfiles,
const int itemwd, const size_t blen) :
    _nfiles(0), _blen(blen)
{   Mp = new TIDoubleListImp<MergeFile>;
    Ap = new TIDoubleListImp<MergeFile>;
    Mi = new TIDoubleListIteratorImp<MergeFile>(*Mp);
    Ai = new TIDoubleListIteratorImp<MergeFile>(*Ap);
    while( nfiles-- )
    {   MergeFile *p = new MergeFile( itemwd, blen );
        if( !(*p) )    // resource alloc failure
        {   delete p;
            break;
        }
        PutTail(p);
        _nfiles++;
    }
}
MergeList::~MergeList() {
    delete Ap;      //Assumes Ap list is empty
    delete Mi;
    delete Ai;
    MergeFile *p;
    while( GetHead(p) )
        delete p;
    delete Mp;
}
//End of File