我在这里有这个基本代码:它是一个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_ */