它给了我第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
答案 0 :(得分:2)
更正这些行的代码:
head->next = head;
head->prev = head;
您的变量名为head
,node
是其类型,但您的班级node
中没有名为Deque
的成员
答案 1 :(得分:0)
struct node
没有名为head
的成员,这是一个问题。node
来自Dequeue()
的{{1}}变量在哪里?根据您发布的代码,外观未定义。 node
是一种类型,而不是变量。struct
的结构类型变量的每个声明添加前缀。如果它需要与C兼容,您也可以始终typedef
结构。