Undefined referencec to ...
Posted
by Patrick LaChance
on Stack Overflow
See other posts from Stack Overflow
or by Patrick LaChance
Published on 2010-04-02T21:52:34Z
Indexed on
2010/04/02
21:53 UTC
Read the original article
Hit count: 357
I keep getting this error message every time I try to compile, and I cannot find out what the problem is. any help would be greatly appreciated:
C:\DOCUME~1\Patrick\LOCALS~1\Temp/ccL92mj9.o:main.cpp:(.txt+0x184): undefined reference to 'List::List()' C:\DOCUME~1\Patrick\LOCALS~1\Temp/ccL92mj9.o:main.cpp:(.txt+0x184): undefined reference to 'List::add(int)' collect2: ld returned 1 exit status
code:
//List.h
ifndef LIST_H
define LIST_H
include
//brief Definition of linked list class
class List { public:
/**
\brief Exception for operating on empty list
*/
class Empty : public std::exception
{ public: virtual const char* what() const throw(); };
/**
\brief Exception for invalid operations other than operating on an empty list
*/
class InvalidOperation : public std::exception
{ public: virtual const char* what() const throw(); };
/**
\brief Node within List
*/
class Node
{ public: /** data element stored in this node */ int element;
/** next node in list / Node next;
/** previous node in list / Node previous;
Node (int element); ~Node();
void print() const; void printDebug() const; };
List();
~List();
void add(int element);
void remove(int element);
int first()const;
int last()const;
int removeFirst();
int removeLast();
bool isEmpty()const;
int size()const;
void printForward() const;
void printReverse() const;
void printDebug() const;
/**
enables extra output for debugging purposes
*/
static bool traceOn;
private:
/** head of list */
Node* head;
/** tail of list */
Node* tail;
/** count of number of nodes */
int count;
};
endif
//List.cpp I only included the parts of List.cpp that might be the issue
include "List.h"
include
include
using namespace std;
List::List() { //List::size = NULL; head = NULL; tail = NULL; }
List::~List() { Node* current; while(head != NULL) { current = head-> next; delete current->previous; if (current->next!=NULL) { head = current; } else { delete current; } } }
void List::add(int element) { Node* newNode; Node* current; newNode->element = element; if(newNode->element > head->element) { current = head->next; } else { head->previous = newNode; newNode->next = head; newNode->previous = NULL; return; }
while(newNode->element > current->element) { current = current->next; }
if(newNode->element <= current->element) { newNode->previous = current->previous; newNode->next = current; }
}
//main.cpp
include "List.h"
include
include
using namespace std; //void add(int element);
int main (char** argv, int argc)
{
List* MyList = new List();
bool quit = false;
string value;
int element;
while(quit==false) { cin>>value;
if(value == "add") { cin>>element; MyList->add(element); } if(value=="quit") { quit = true; } } return 0; }
I'm doing everything I think I'm suppose to be doing. main.cpp isn't complete yet, just trying to get the add function to work first. Any help will be greatly appreciated.
© Stack Overflow or respective owner