PDA

Visualizza la versione completa : Template non funzionante: come mai?


sccc
16-08-2007, 14:23
Raga mi date un'occhiata a questo Template? Grazie.

stack.h


#ifndef _STACK_
#define _STACK_

template<class tipo>

class stack
{
int top;
int size;
tipo* elements;

public:

stack(int n);
~stack() {delete[] elements;}
void push(tipo a);
tipo pop();
};

#endif // _STACK_



stack.cpp



#include "stack.h"
#include <iostream.h>

template<class tipo>

stack<tipo>::stack(int n)
{
size = n;
elements = new tipo[size];
top = 0;
}

void stack<tipo>::push(tipo a)
{
if (top < size)
{
elements[top] = a;
top++;
}
}

tipo stack<tipo>::pop()
{
if (!top)
return (tipo) 0;
top--;
return elements[top];
}

void display(stack<tipo>& s)
{
tipo a;
while (a = s.pop())
cout << a << endl;
}


main.cpp


#include "stack.h"
#include <iostream.h>

void main()
{
stack<char> cstack(10);
stack<double> fstack(20);
stack<char*> sstack(5);
cstack.push('a');
cstack.push('b');
cstack.push('c');
display(cstack); // scrive: c b a
fstack.push(1.23);
fstack.push(4.56);
fstack.push(7.89);
display(fstack); // scrive: 7.89 4.56 1.23
sstack.push("uno");
sstack.push("due");
sstack.push("tre");
display(sstack); // scrive: tre due uno
}

alka
16-08-2007, 14:27
Stai giÓ parlando di problemi con template in un'altra discussione.

Inoltre, continui a non indicare il linguaggio.

Loading