#ifndef _THR_Bd_Stack_
#define _THR_Bd_Stack_

template <typename T> class Stack {
public:
	Stack();
	virtual ~Stack();
	virtual void push(const T& t) =0;
	virtual void pop() =0;
	virtual const T& top() const =0;
	virtual bool empty() const =0;
	virtual bool full() const =0;
private:
	void operator=(const Stack&); // Voorkom gebruik
	Stack(const Stack&);          // Voorkom gebruik
};

template <typename T> Stack<T>::Stack() {
}
template <typename T> Stack<T>::~Stack() {
}

#endif
