1

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

2 回答 2

2

这些行的正确代码:

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

Your variable is named head, and node is its type, but there is no member named node in your class Deque

于 2012-06-06T00:37:54.740 回答
0
  1. struct node没有名为 的成员head,这是一个问题。
  2. 你的node变量来自哪里Dequeue()?鉴于您发布的代码,看起来未定义。 node是一种类型,而不是变量。
  3. 在 C++ 中,不需要在结构类型变量的每个声明前加上struct. 如果它需要与 C 兼容,您也可以始终typedef使用该结构。
于 2012-06-06T00:35:46.203 回答