Name: Anonymous 2009-07-02 18:18
OK I have this very simple stack class. However when I try to instantiate an object of type Stack, the whole program just hangs. What's trong?
template <class T>
class Stack {
T *arr;
int n;
int ptr;
public:
class Stack_voll{};
class Stack_leer{};
Stack(int size) : ptr(0), n(size), arr(new int[n]) {}
void push(const T& e) {
if(ptr >= n)
throw Stack_voll();
arr[ptr++] = e;
}
T& pop() {
if(ptr == 0)
throw Stack_leer();
ptr--;
return arr[ptr];
}
};
template <class T>
class Stack {
T *arr;
int n;
int ptr;
public:
class Stack_voll{};
class Stack_leer{};
Stack(int size) : ptr(0), n(size), arr(new int[n]) {}
void push(const T& e) {
if(ptr >= n)
throw Stack_voll();
arr[ptr++] = e;
}
T& pop() {
if(ptr == 0)
throw Stack_leer();
ptr--;
return arr[ptr];
}
};