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;

変数の名前headは でありnode、その型ですがnode、クラスに名前が付けられたメンバーはありません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 に答える