我已经从上一学期的一些课程中学习了一些旧的hw任务。 这是打印链接列表对象的给定打印功能。 我不明白为什么重载的操作符需要两个参数,一个是操作系统对象。当我们在main.cpp上打印出实际的链表对象时,我们并不需要通过一个os对象。另外,它为什么返回os?为什么我们不能使用cout 而不是“os < <”?重载运算符<< ostream语法
谢谢!
template <class T>
void List<T>::print(ostream & os) const
{
os << "<";
ListNode * curr = head;
while (curr != NULL) {
os << " " << curr->data;
curr = curr->next;
}
os << " >";
}
// overloaded operator<<
template <class T>
ostream & operator<<(ostream & os, const List<T> & list)
{
list.print(os);
return os;
}
“流流”?这是“串流”的错字吗? – 2016-11-01 10:13:57