I am attempting to make a manual generic stack class that does some other things when pushing and popping, however when I compile it, I am getting undefined reference errors for every reference to the class that I use in main. I tested it first using int instead of T and everything worked fine, so it's the conversion to generic that is giving me the problems. Header:
template <typename T>
class Stack
{
public:
Stack();
void push(T item);
T pop();
int nbrOfItems() const;
int capacity() const;
private:
T* stack;
int nbrItems;
int size;
};
CPP:
#include "Stack.h"
template <typename T>
Stack<T>::Stack()
{
size = 1;
stack = new T[size]();
nbrItems = 0;
}
template <typename T>
void Stack<T>::push(T item)
{
//push things
}
template <typename T>
T Stack<T>::pop()
{
//pop things
}
template <typename T>
int Stack<T>::nbrOfItems() const
{
return nbrItems;
}
template <typename T>
int Stack<T>::capacity() const
{
return size;
}