#include<Debug.h>
template<typename TYPE>
GPArray<TYPE>::GPArray()
:
fArray(NULL),
fSize(0)
{
}
template<typename TYPE>
GPArray<TYPE>::~GPArray()
{
if (fArray != NULL) {
for (int i = 0; i < fSize; i ++)
delete fArray[i];
delete[] fArray;
fArray = NULL;
}
}
template<typename TYPE>
void
GPArray<TYPE>::SetSize(int size)
{
ASSERT(fSize == 0);
fArray = new PointerType[size];
if (fArray == NULL)
return;
fSize = size;
for (int i = 0; i < size; i ++) {
fArray[i] = NULL;
}
}
template<typename TYPE>
int
GPArray<TYPE>::Size() const
{
return fSize;
}
template<typename TYPE>
void
GPArray<TYPE>::DecreaseSize()
{
ASSERT(fArray != NULL);
ASSERT(fArray[fSize-1] == NULL);
fSize --;
}
template<typename TYPE>
TYPE**
GPArray<TYPE>::Array()
{
return fArray;
}
template<typename TYPE>
TYPE **
GPArray<TYPE>::Array() const
{
return fArray;
}
template<typename TYPE>
bool
GPArray<TYPE>::IsEmpty() const
{
return fSize == 0;
}