所以我有这个头文件,它有 2 个利用 ostream 的函数,我试图重载间接运算符 (<<) 以允许我使用指向模板列表节点的指针写入文件。
来自 .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 文件之前,我收到了一个不同的错误,指出使用类模板需要模板参数列表。但它似乎已经消失了。