C++ 返回指向受保护的内部类元素的指针

C++ 返回指向受保护的内部类元素的指针,c++,pointers,linked-list,C++,Pointers,Linked List,我有一个泛型链表类,它包含一个保存ListElements(节点)的受保护内部类。在我的链表类中,我想创建一个函数,该函数返回指向给定参数前面的列表元素的指针。我无法理解如何在通用模板类中正确定义和实现这样的函数 这是LinkedList.h代码 template <typename Type> class LinkedList { public: LinkedList(); LinkedList(const LinkedList &s

我有一个泛型链表类,它包含一个保存ListElements(节点)的受保护内部类。在我的链表类中,我想创建一个函数,该函数返回指向给定参数前面的列表元素的指针。我无法理解如何在通用模板类中正确定义和实现这样的函数

这是LinkedList.h代码

template <typename Type>
class LinkedList
{
    public:
        LinkedList();
        LinkedList(const LinkedList &src);
        ~LinkedList();

        void insert(const Type &item, int);
        void remove();
        Type retrieve() const;
        int  gotoPrior();
        int  gotoNext();
        int  gotoBeginning();
        void clear();
        int  empty() const;
        void printList();
    protected:
        class ListElement
        {
            public:
                ListElement(const Type &item, ListElement* nextP):
                    element(item), next(nextP) {}
                Type element;
                ListElement* next;
        };
        ListElement *head;
        ListElement *cursor;
};

}不能在头文件中声明模板方法,然后在cpp文件中实现它。模板方法必须在头文件中实现。您可以在类中声明方法,也可以在文件中进一步实现它们。在类下面实现时,示例方法如下所示

template<typename Type>
LinkedList<Type>::ListElement *LinkedList<Type>::ListElement::getPrevious(ListElement *target){
    //...
}
模板
LinkedList::ListElement*LinkedList::ListElement::getPrevious(ListElement*目标){
//...
}

你为什么要重新发明轮子。列表?这是一次学习经历。在实际应用程序中,我将使用std::List,但现在我想学习这种情况下的机制和正确语法。你说你已经知道如何正确地编写函数是什么意思?我的意思是我知道如何查找上一个节点,但我不知道如何正确定义函数头。
template<typename Type>
LinkedList<Type>::ListElement *LinkedList<Type>::ListElement::getPrevious(ListElement *target){
    //...
}