したがって、ostream を利用する 2 つの関数を含むこのヘッダー ファイルがあり、間接演算子 (<<) をオーバーロードして、テンプレート化されたリスト ノードを指すポインターを使用してファイルに書き込めるようにしようとしています。
ここの.hファイルからのプロトタイプは
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;
}
プリントフォワード機能
template <typename T>
void List<T>::PrintForward(ostream &out)
{
ListNode* lp = head;
while(lp != NULL)
{
out << *lp->value;
lp = lp -> next;
}
}
プリントバック機能
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 ファイルに切り替える前に、クラス テンプレートの使用にはテンプレート引数リストが必要であることを示す別のエラーが発生していました。でも消えてしまったようです。