不确定Typedef和Class的放置

时间:2011-11-01 04:35:48

标签: c++ class typedef definition

我一直致力于此计划,但每次尝试构建时,都会收到以下错误消息:

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

我不确定这些错误消息的原因是什么,因为我在我的Node类中声明了Gumball类

我的Stack类中的

#include "Node.h" 和 我的主要"#include "Stack.h" 。任何建议都将不胜感激。

我的Node.h文件如下所示:

#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

#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文件如下所示:



2 个答案:

答案 0 :(得分:2)

Gumball::Gumball()构造函数定义在哪里?那是gumball.cpp文件吗?如果没有,那么尝试内联定义:

class Gumball {
    public:
        Gumball() {}

答案 1 :(得分:1)

您是否实施了任何类方法?我看到的只是一堆类声明。