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