用C++描述链表,跟友元类的矛盾

用C++描述链表,和友元类的矛盾定义结点:templateclass Tclass CNode{friend CListTprivate:T dataCN

用C++描述链表,和友元类的矛盾
定义结点:

template<class T>

class CNode

{

friend CList<T>;

private:

T data;

CNode *pNext;

}

定义表类:

template<class T>

class CList

{

CNode *pHead;

CNode *pEnd;

.....

}

 

这样就有问题了,定义结点CNode 的时候要加一句friend CList<T>;但此时CList并没有定义,编译不通过;

如果把CList类的定义放在前面,那么CNode编译器又不认识了..

怎么解决这个问题


[解决办法]
在class CNode先前声明CList类