gpt4 book ai didi

c++ - 如何继承模板函数?

转载 作者:搜寻专家 更新时间:2023-10-31 01:01:45 28 4
gpt4 key购买 nike

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

链表接口(interface).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;
};

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

链表.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 的见解都会很棒!

最佳答案

您的类本身需要是一个模板,或者派生自 LinkedListInterface 的特殊版本:

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

或者:

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

关于c++ - 如何继承模板函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28399163/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com