这个链表节点的模版如何会有有关问题呢

这个链表节点的模版怎么会有问题呢?
template <class   T>
class   Node{
public:
Node(){   }
Node(const   T&   d,   Node*   p=0,   Node*   n){
data=d;
prev=p;
next=n;
}
ostream&   operator < <(ostream   &output){
output < <data;  
return   ouput;
}
T   data;
Node <T>   *prev,   *next;
};
上面自己写的这个模版,   自己认为没有发现有错误
可是到VC上编译下,   却有7个错误呀
这是为什么呢?
哪位高人请指点!

------解决方案--------------------
因为第一个参数是ostream引用,所以不能定义为成员。
data是public 不定义成friend方法也可以。如果data是private就一定要定义成friend方法