错误:"->"令牌之前应存在非限定 ID



它给了我第 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

这些行的正确代码:

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

您的变量名为 head ,其类型node,但类中没有名为 node 的成员Deque

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

相关内容

  • 没有找到相关文章

最新更新