// tbldata.hpp
#ifndef TBLDATA_HPP
#define TBLDATA_HPP
#include <string.h>
#include <assert.h>
template <class cellType> class TableData
{
public:
TableData (TableData *const prev):
PrevTD (prev)
{ }
virtual ~TableData (void)
{ }
virtual const cellType GetCell (const int row,
const int col)
{
assert (PrevTD != 0); // Override in buffer
return (PrevTD->GetCell (row, col));
}
virtual void PurCell (const int row, const int col,
const cellType &value)
{
assert (PrevTD != 0);
PrevTD->PutCell (row, col, value);
}
virtual const int GetNumRows (void) const
{
assert (PrevTD != 0);
return (PrevTD->GetNumRows ());
}
virtual const int GetNumCols (void) const
{
assert (PrevTD != 0);
return (PrevTD->GetNumCols ());
}
virtual const char &GetRowHeading (const int row)
{
assert (PrevTD != 0);
return (PrevTD->GetRowHeading (row));
}
virtual const char &GetColHeading (const int col)
{
assert (PrevTD != 0);
return (PrevTD->GetColHeading (col));
}
protected:
TableData *PrevTD; // ptr to prev link in chain
private:
TableData (void); // disable default methods
TableData (const TableData &tData);
TableData& operator= (const TableData&);
};
#endif
// End of File