Undefined reference 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 22:13 UTC
Read the original article Hit count: 257

Filed under:
|
|

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 <exception>

//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 <iostream>
#include <iomanip>

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 <iostream>
#include <string>

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

Related posts about c++

Related posts about linking