这个链表节点的模版如何会有有关问题呢
这个链表节点的模版怎么会有问题呢?
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方法
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方法