그래서이 헤더 파일에는 ostream 을 사용하는 함수가 2 개 있고 간접적 인 연산자 (< <)를 오버로드하여 템플릿 목록 노드를 가리키는 포인터를 사용하여 파일에 쓸 수 있습니다. 여기 .H 파일 Ostream 미확인?
는void PrintForward(ostream &out);
void PrintBackward(ostream &out);
ostream& operator<< (ostream &out, List<t> const* p);
후 원형이다 .cpp 파일로부터
조작 함수 오버로딩
ostream& operator<< (ostream &out, ListNode::List const* p)
{
return out << *p;
}
Printforward 기능
template <typename T>
void List<T>::PrintForward(ostream &out)
{
ListNode* lp = head;
while(lp != NULL)
{
out << *lp->value;
lp = lp -> next;
}
}
는 printBackward 기능
template <typename T>
void List<T>::PrintBackward(ostream &out)
{
ListNode* lp = tail;
while(lp != NULL)
{
out << *lp;
lp = lp -> prev;
}
}
현재 내가 할 모든
error C2061: syntax error : identifier 'ostream'
말 컴파일러 오류가 발생하지만 난 그것을 찾을 수 없습니다. 모든 기능을 .cpp 파일로 전환하기 전에 클래스 템플릿 사용시 템플릿 인수 목록이 필요하다는 다른 오류가 발생했습니다. 그러나 그것은 사라진 것으로 보인다.
'#include'이 있습니까? 또한'네임 스페이스 std '를 사용하지 않아도된다면,'std :: ostream'이어야합니다. –
Yuushi
"ostream과 구문 오류가 있습니다."나는 그것이 컴파일러에서 말하는 것과 정확히 일치한다는 것을 알게되었습니다. 정확한 오류와 그 오류가 발생한 행을 게시하십시오. – stijn
@Yuushi 사실 내가 #을 포함하고 있는데, 내가 잘못하지 않으면 ostream도 포함됩니다. 나는 그것을 교체하고 단지 훨씬 더 큰 오류 목록을 얻기 위해 재구성했다. –
user2754048