C++在类中创建模板

C++ Create Template in Class

本文关键字:建模 创建 C++      更新时间:2023-10-16

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

下面是"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
    {
        ........
    }

但是有一个错误说"error:need'typename'before'List::ListNode'because'List'is a dependent scope"

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

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

因为ListNode是模板类中某个类型的名称,所以需要编写:

typename List<ListItemType>::ListNode

此外,您的模板的实现可能需要对每个人都可见。我不会把它放在一个单独的.cpp文件中。