如何继承模板函数?

How to inherit Template Functions?

我需要为一个项目继承一个模板化的 class。这是它的样子:

LinkedListInterface.h

#pragma once
#include <string>
using namespace std;

template<class T>
class LinkedListInterface
{
public:
    LinkedListInterface(void) {}
    virtual ~LinkedListInterface(void) {}

    virtual void insertHead(T value) = 0;
    virtual void insertTail(T value) = 0;
};

这就是他们给我们的,现在我需要做一个 class 继承它然后执行各种功能。我一辈子都想不出正确的格式。这是我目前所拥有的:

LinkedList.h

#include "LinkedListInterface.h"
#include "Node.h"
using namespace std;

class LinkedList : public LinkedListInterface<class T>
{
private:
    int   listsize;
    Node* head;
    Node* tail;

public:
    LinkedList(void) {}
    virtual ~LinkedList(void) {}

    void insertHead(T value) {}
    void insertTail(T value) {}
};

我的问题是它不让我使用 T,它说 Incomplete type is not allowed。任何关于如何继承它以便我可以使用 T 的见解都会很棒!

LinkedList 需要是具有模板参数 T:

的 class 模板
template <typename T>
class LinkedList : public LinkedListInterface<T>
{
  ....
};

您的 class 本身需要是模板或派生自 LinkedListInterface 的专用版本:

template<typename T>
class LinkedList : public LinkedListInterface<T>
{
    ...
};

或者:

class LinkedList : public LinkedListInterface<int>
{
    ...
    void insertHead(int value){ }
    void insertTail(int value){ }
};