template class mDynArray_c { int currentSize; TValue buffer[TMaxSize]; public: mDynArray_c() { currentSize = 0; } int count() { return currentSize; } int max() { return TMaxSize; } TValue& get(int index) const { return buffer[index]; } void set(int index, TValue &newValue) { buffer[index] = newValue; } void append(TValue &newValue) { set(currentSize, newValue); currentSize += 1; } TValue &pop() { currentSize -= 1; return get(currentSize - 1); } TValue &first() const { return get(0); } TValue &last() const { return get(currentSize - 1); } bool empty() const { return (currentSize == 0); } bool full() const { return (currentSize == TMaxSize); } };