c++ - 返回指向 protected 内部类元素的指针

标签 c++ pointers linked-list

我有一个通用的链表类,其中包含一个 protected 内部类,该内部类包含 ListElements(节点)。在我的 Linked-List 类中,我想创建一个函数,该函数返回指向给定参数之前的 List-Element 的指针。我无法弄清楚如何在通用模板类中正确定义和实现这样的功能。

这是 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;
};

我想实现这样的功能。牢记:我已经知道如何正确编写函数代码,我不确定如何在 LinkedList.h 中定义它并在 LinkedList.cpp 中实现它

ListElement *LinkedList::ListElement getPrevious(ListElement *target){
     //where a list element inside the list is passed and this returns
     //the node previous to that.

最佳答案

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

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

关于c++ - 返回指向 protected 内部类元素的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30960159/

相关文章:

C++ 模板参数更改对指针的引用

c++ - 从函数返回变量的链表

java - 如何使用java将对象相互链接

java - java获取LinkedList中包含给定值的节点的索引

c++ - qsort() vs std::sort,比较函数哲学差异

c++ - 为什么我在使用 &this 时会出错?

c++ - 性能问题 : Inverting an array of pointers in-place vs array of values

c - 如何使用 gets() 函数直接写入指针?

c++ - 从 C++ 访问函数环境中的 Lua 变量

c++ - 使用 C++ 读取其中包含空字节的二进制文件