我有一个程序在链表中实现一个结构。我在主要内容中收到一个错误,说"结构节点::d ate的无效使用"。我想不通。我的教授也不知道。任何帮助以及解释将不胜感激,以便我知道它为什么要这样做。
#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;
}
}
这只是
一个名为date
的struct
的声明:
struct date;
您需要的是为您的Node
提供一个date
实例:
struct Node
{
string item;
int count;
Node *link;
date date_; // Node has a date called date_
};