0

您好我试图创建一个列表类。但是为了有一个列表类的变体,我使用模板将值存储在项目变量中。

下面是“List.h”

template <class ListItemType>
    class List
    {
        public:
            .........
            .........

        private:
            struct ListNode
            {
                ListItemType item;
                ListNode    *next; 
            };

        int size; 
        ListNode *head;
        ListNode *find(int index) const;
    };

那么如何在 List.cpp 中创建“ListNode *find(int index) const”函数的实现呢?

我试着用

template <class ListItemType>
    List<ListItemType>::ListNode *List<ListItemType>::find(int index) const
    {
        ........
    }

但是有一个错误说“错误:在'List :: ListNode'之前需要'typename',因为'List'是一个依赖范围”

你知道如何在 List.cpp 中实现“ListNode *find(int index) const”吗?

这是我第一次使用模板,我有点困惑。谢谢

4

1 回答 1

0

因为ListNode是您需要编写的模板类中的类型名称:

typename List<ListItemType>::ListNode

此外,您的模板的实现可能需要对所有人可见。我不会将其放入单独的 .cpp 文件中。

于 2014-01-31T11:11:58.123 回答