问问题
438 次
2 回答
1
friend class SLinkedList<E>;
此时SLinkedList
尚未将其定义为模板,因此会出现错误。给 一个前向声明SLinkedList
,一切都会好起来的。
添加这个: -
template <typename E>
class SLinkedList;
于 2017-01-24T02:42:44.363 回答
1
friend class SLinkedList<E>;
此模板尚未声明。您的 C++ 代码会以有序的方式编译,从源文件的开头到结尾。在此模板稍后在此头文件中声明之前,编译器不知道这是什么。
解决方法很简单:在头文件开头添加前向声明,因为SNode
模板声明:
template <typename E> class SLinkedList;
template <typename E>
class SNode {
private:
E elem;
SNode<E> * next;
friend class SLinkedList<E>;
};
于 2017-01-24T02:22:55.170 回答