Неуверенность в размещении Typedef и Class - PullRequest
2 голосов
/ 01 ноября 2011

Я работал над этой программой, но каждый раз, когда я пытаюсь построить, я получаю следующие сообщения об ошибках:

|41|undefined reference to `Gumball::Gumball()'
obj\Debug\main.o||In function `main':|
|24|undefined reference to `Gumball::Gumball()'
|24|undefined reference to `Gumball::Gumball()'
obj\Debug\main.o||In function `Z10eatgumballR5StackR7Gumball'
|102|undefined reference to `Gumball::Gumball()'
obj\Debug\Node.o||In function `Node':
|4|undefined reference to `Gumball::Gumball()'
|4|more undefined references to `Gumball::Gumball()' follow
||=== Build finished: 6 errors, 0 warnings ===|

Я не уверен, что является причиной этих ошибоксообщения, поскольку у меня есть класс Gumball, объявленный внутри моего класса Node, и

#include "Node.h" в моем классе Stack и "#include "Stack.h" в моем main.Будем благодарны за любые предложения.

Мой файл Node.h выглядит следующим образом:

</p> <pre><code>#ifndef NODE_H #define NODE_H #include <iostream> using namespace std; class Gumball { public: Gumball(); string color; int counter; }; typedef Gumball Type; // Interface file - Node class definition class Node { public: Node(); Type x; Node *n; Type getinfo(); Node *getnext(); void setinfo(Type x); void setnext (Node *n); private: Type info; Node *next; }; #endif // NODE_H

и мойФайл Stack.h выглядит так:

</p> <pre>#ifndef STACK_H #define STACK_H #include "Node.h" typedef Gumball Type; // Interface file - Stack class definition class Stack { public: Stack(); ~Stack(); void push(Type); Type pop(); bool isempty(); //Type size(); void print(); private: Node *top; }; #endif // STACK_H

Ответы [ 2 ]

2 голосов
/ 01 ноября 2011

Где определен конструктор Gumball::Gumball()?Это в gumball.cpp файле?Если нет, попробуйте определить его в строке:

class Gumball {
    public:
        Gumball() {}
1 голос
/ 01 ноября 2011

Вы реализовали какой-либо из методов класса? Все, что я вижу, это куча объявлений классов.

...