错误:在' - >'标记之前预期的unqualified-id

时间:2012-06-06 00:32:50

标签: c++ linked-list

它给了我第21和22行的错误,这是我注意到的。从具有类似错误消息的其他情况判断,我在某处出现语法错误。我只是弄清楚是什么..这是我的.cpp文件:

#include <iostream>
#include <cstdlib>

#include "deque.h"

using namespace std;

struct node{
    int data;
    node *prev;
    node *next;
};

Deque::Deque(){
    count = 0;

    node->head->next = node->head;         //error on this line
    node->head->prev = node->head;         //and this one
}

这是我的头文件:

# ifndef DEQUE_H
# define DEQUE_H


class Deque
{
private:
    int count;
    class node *head;
public:
    Deque();
    ~Deque();
    int size();
    void addFirst(int);
    void addLast(int);
    int removeFirst();
    int removeLast();
    int getFirst();
    int getLast();

};
#endif

2 个答案:

答案 0 :(得分:2)

更正这些行的代码:

head->next = head;
head->prev = head;

您的变量名为headnode是其类型,但您的班级node中没有名为Deque的成员

答案 1 :(得分:0)

  1. struct node没有名为head的成员,这是一个问题。
  2. node来自Dequeue()的{​​{1}}变量在哪里?根据您发布的代码,外观未定义。 node是一种类型,而不是变量。
  3. 在C ++中,不需要为struct的结构类型变量的每个声明添加前缀。如果它需要与C兼容,您也可以始终typedef结构。