ntemplate <class
TYPE> class stack {
n private:
n TYPE * stack_array;
n const int stack_size;
n int stack_index;
n public:
n stack (int size=100): stack_size(size),
stack_index(0) { stack_array = new TYPE[size]; } ...
n};
ntemplate <class
TYPE> void stack<TYPE>::push(TYPE item) {
n if (stack_index < stack_size) {
n stack_array[stack_index] = item;
n ++stack_index; } }
n//An explicit
specialization
ntemplate <> void
stack <char *>::push(char * item) {
n if (stack_index < stack_size) {
n stack_array[stack_index] = new
char[strlen(item)+1];
n strcpy(stack_array[stack_index],
item);
n ++stack_index; } }
n