/************************************************************************ *
stack.h
* ************************************************************************/
#ifndef _STACK_TPL_H
#define _STACK_TPL_H
template<class T>
class stack
{
private:
T* v;
T* p;
int sz;
public:
stack( int );
~stack();
void push( T );
};
#endif
/************************************************************************ *
stackdef.h
* ************************************************************************/
#include "stack.h"
template<class T> stack<T>::stack( int s )
{
v = p = new T[sz=s];
}
template<class T> stack<T>::~stack()
{
delete [] v;
}
template<class T> void stack<T>::push( T a )
{
*p++ = a;
}