Eclipse C ++ Object没有命名类型

时间:2017-03-25 04:09:59

标签: c++ eclipse

我在这里有这个基本代码:它是一个Node,它是List的一部分,每个Node都有数据

#ifndef NODE_H_
#define NODE_H_
#include "Data.h"

namespace std {

class Node {
public:
    Node();
    Node(Data* aItem);
    virtual ~Node();
    virtual Node* getNext();
    virtual void setNext(Node * linkedNode);
    virtual Data* getData();
    virtual void setData(Data * item);
private:
    Node *next;
    Data *item;
};

} /* namespace std */

#endif /* NODE_H_ */

对于“Data * item;”,正如您在顶部看到的,我已经包含了Data.h,是否有理由说它的数据没有命名类型?

错误日志:

..\Node.h:17:11: error: expected ')' before '*' token
  Node(Data* aItem);
           ^
..\Node.h:21:13: error: 'Data' does not name a type
     virtual Data* getData();
             ^
..\Node.h:22:26: error: 'Data' has not been declared
     virtual void setData(Data * item);
                          ^
..\Node.h:25:2: error: 'Data' does not name a type
  Data *item;

编辑:添加Data.h

#ifndef DATA_H_
#define DATA_H_

#include "List.h"

namespace std {

class Data {

private:
    int ID;
    List* listOne;
    List* listTwo;

public:
    Data();
    Data(int aID);
    virtual ~Data();
    virtual int getID();
    virtual void setID(int aID);
    virtual List* getListOne();
    virtual List* getListOne();
};

} /* namespace std */

#endif /* DATA_H_ */

List.h:

#ifndef LIST_H_
#define LIST_H_
#include "Node.h"
#include "Data.h"

namespace std {

class List {
private:
    std::Node *top;
public:
    List();
    virtual ~List();
    virtual Node* getTop();
    virtual void add(Node * linkedNode);
    virtual void remove(Node * linkedNode);
};

} /* namespace std */

#endif /* LIST_H_ */

0 个答案:

没有答案