1

そのため、現在、単一リンクリストとしてキューを実装しています。すべてが順調に進んでいますが、コンパイラはデキューメソッドでフラグを立てています。

これは、VisualStudioが私に吠えるものです。

エラーC2065:'削除済み':宣言されていない識別子

キューから削除されたばかりの値を返すことになっているデキューメソッドは次のとおりです。

template <typename Type>
Type QueueLinked<Type>::deque() {
if (queueFront == 0) {
    cout << "Queue is empty! There's nothing to remove!" << endl;
} else {
    nodeType<Type> *temp;
    temp = queueFront;
    queueFront = queueFront->next;
    Type Removed = temp->dataItem;
    delete temp;

    if (queueFront == 0) {
        queueRear = 0;
    }
}
return Removed;
} 

これが私のノード構造体です:

template <typename Type>
struct nodeType {
    Type dataItem;
    nodeType<Type> *next;
};

これは非常に単純なエラーのように見えますが、これを引き起こしている原因がわかりません。うまくいけば、私はあまり馬鹿ではありませんが、それは初めてではないでしょう。

4

1 に答える 1

1

あなたはそれをelseブロック内で宣言します、もちろんそれはそれの外では宣言されていません。の前に宣言しifます。

この方法を試してください:

template <typename Type>
Type QueueLinked<Type>::deque() {
  Type Removed;
  if (queueFront == 0) {
    cout << "Queue is empty! There's nothing to remove!" << endl;
  } else {
    nodeType<Type> *temp;
    temp = queueFront;
    queueFront = queueFront->next;
    Removed = temp->dataItem;
    delete temp;

    if (queueFront == 0) {
        queueRear = 0;
    }
  }
return Removed;
} 
于 2012-10-15T16:26:32.097 に答える