1
그래서 현재 단일 연결 목록으로 대기열을 구현 중입니다. 모든 것이 정상적으로 진행되고 있지만 컴파일러는 dequeue 메서드에서 플래그를 지정하고 있습니다.템플릿 대기열에 넣기 방법에 선언되지 않은 식별자가 있습니다.
이 비주얼 스튜디오 나를 짖는 것입니다 :
오류 C2065 : '제거': 선언되지 않은 식별자 여기
만 제거 된 값을 반환하도록되어 내 디큐의 방법은 대기열에서 :
,369 : 여기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;
};
이것은 매우 단순한 오류가있는 것처럼 보이지만이 문제를 일으키는 것이 보이지 않습니다. 잘만되면 나는 너무 바보가 아니다. 그러나 그것은 처음이 아닐 것이다.
당신은 100 % 권리를 위치 :
이 방법을 사용해보십시오. 나는 어떤 경우에만 선언 된 것을 반환하고있는 것을보아야 만했다. 신기한 실수이지만, 교훈을 얻었습니다. –
아무 것도 제거되지 않았을 때 * 돌아오고있는 것을 정확히 물어볼 수도 있습니다! –
나는 그 사실을 즉시 의심했다. 내 머리 속에서 나는 그것을 정당화했다. Removed를 정의되지 않은 상태로 남겨 두었지만, Matzi의 도움을받은 후에 고통스럽게 분명했다. 선언되지 않았다면 완전히 별개의 문제로 이어진다. –