gpt4 book ai didi

c++ - undefined reference

转载 作者:行者123 更新时间:2023-11-30 00:41:53 26 4
gpt4 key购买 nike

我每次尝试编译时都会收到此错误消息,但我无法找出问题所在。任何帮助将不胜感激:

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

代码:

//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;
}

我正在做我认为应该做的一切。 main.cpp 还没有完成,只是想让 add 函数先工作。任何帮助将不胜感激。

最佳答案

描述您的构建过程。看起来好像您没有构建 List.cpp,或者没有将它与 main.cpp 链接。

关于c++ - undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2569399/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com