1

I have a program that implements a structure in a linked list. I am getting an error in the main that is saying "invalid use of struct Node::date." I cannot figure out. My professors don't know either. Any help would be appreciated along with an explanation so I know why it is doing this.

#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;
    }
}
4

1 回答 1

3

这只是一个struct被调用的声明date

struct date;

你需要的是给你Node一个date实例:

struct Node
{
  string item;
  int count;
  Node *link;
  date date_; // Node has a date called date_
};
于 2013-10-16T15:10:07.733 回答