我有一个在链表中实现结构的程序。我在main中得到一个错误,说“无效使用struct Node :: date”。我弄不清楚。我的教授也不知道。任何帮助将得到赞赏以及解释,所以我知道它为什么这样做。
#include <iostream>
#include <cstddef>
#include <string>
using namespace std;
struct date
{
int day;
int month;
int year;
};
struct Node
{
string item;
int count;
Node *link;
struct date;
};
typedef Node* NodePtr;
void head_insert(NodePtr& head, string an_item, int a_number, date a_date);
void show_list(NodePtr& head);
int main()
{
date tea_date, jam_date, rolls_date;
rolls_date.day = 8;
rolls_date.month = 10;
rolls_date.year = 2003;
jam_date.day = 9;
jam_date.month = 12;
jam_date.year = 2003;
tea_date.day = 1;
tea_date.month = 1;
tea_date.year = 2010;
NodePtr head = NULL;
head_insert(head, "Tea", 2, tea_date);
head_insert(head, "Jam", 3, jam_date);
head_insert(head, "Rolls", 10, rolls_date);
show_list(head);
system("PAUSE");
return 0;
}
void head_insert(NodePtr& head, string an_item, int a_number, date a_date)
{
NodePtr temp_ptr;
temp_ptr = new Node;
temp_ptr-> item = an_item;
temp_ptr-> count = a_number;
temp_ptr-> date = a_date;
temp_ptr->link = head;
head = temp_ptr;
}
void show_list(NodePtr& head)
{
NodePtr here = head;
while (here != NULL)
{
cout << here-> item << "\t";
cout << here-> count << endl;
here = here->link;
}
}
答案 0 :(得分:3)
这只是struct
date
的声明:
struct date;
您需要提供Node
date
个实例:
struct Node
{
string item;
int count;
Node *link;
date date_; // Node has a date called date_
};