KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
[[UPDATE]] -> If I #include "Queue.cpp" in my program.cpp, it works just fine. This shouldn't be necessary, right? Hey all -- I'm using Visual Studio 2010 and having trouble linking a quick-and-dirty Queue implementation. I started with an empty Win32 Console Application, and all files are present in the project. For verbosity, here's the complete code to duplicate my error. I realize some of the code may, in fact, be wrong. I haven't had a chance to test it yet because I haven't yet been able to link it. Queue.hpp #ifndef ERROR_CODE #define ERROR_CODE enum Error_Code { Success, Underflow, Overflow }; #endif // ERROR_CODE #ifndef QUEUE #define QUEUE template<class T> struct Queue_Node { T data; Queue_Node *next; Queue_Node() { next = NULL; } Queue_Node(T pData) { data = pData; next = NULL; } Queue_Node(T pData, Queue_Node *pNext) { data = pData; next = pNext; } }; template<class T> class Queue { public: Queue(); Error_Code Serve(); Error_Code Append(T item); T Front(); ~Queue(); private: void Rescursive_Destroy(Queue_Node<T> *entry); Queue_Node<T> *front, *rear; }; #endif // QUEUE Queue.cpp #include "Queue.hpp" template <class T> Queue<T>::Queue() { this->front = this->rear = NULL; } template<class T> Error_Code Queue<T>::Serve() { if(front == NULL) return Underflow; Queue_Node *temp = this->front; this->front = this->front->next; delete temp; } template<class T> Error_Code Queue<T>::Append(T item) { Queue_Node *temp = new Queue_Node(item); if(!temp) return Overflow; if(this->rear != NULL) this->rear->next = temp; this->rear = temp; return Success; } template<class T> T Queue<T>::Front() {
Tags (comma-separated)
Save Edits
Cancel