gpt4 book ai didi

c++链表模板和节点

转载 作者:行者123 更新时间:2023-11-28 02:36:01 25 4
gpt4 key购买 nike

我目前正在尝试为我的列表类创建一个模板 - 它应该能够创建继承 Employee(经理和员工)的 Employee 类的链表。

我对如何初始化列表感到困惑,因为当我这样做时,它要求数据类型。

这是我的代码的一些片段:

template <class DataType>
struct Node
{
DataType data;
Node<DataType> *next;
};



template <class DataType>
class List
{
public:
List();
List(const List<DataType> & aplist);
~List();

bool search(const DataType & element);

Node<DataType> first();
private:
Node<DataType>* head;
Node<DataType>* current;
};

template <class DataType>
List<DataType>::List()
{
head = NULL;
}

template <class DataType>
List<DataType>::List(const List<DataType> & aplist)
{
deepCopy(aplist);
}
... etc

在创建列表时我有点困惑;以前当我在 .header 文件中有我的链接列表时,我使用了 List myList;所以现在我尝试了这个

List<> myList;

它需要一个数据类型。所以我尝试了 List< DataType> myList;它不喜欢 DataType,即使它在我的模板中声明了?我还尝试了 Node 和 get,但错误提示类模板“Node”的参数列表丢失。

我想知道是否有人可以解释如何启用我的链表 (myList) 进行初始化,然后允许输入 3 个不同的类 Employee(基类)、(Manager 和 Staff inherit Employee)。

干杯

最佳答案

我建议您尝试使用类似 int 的实现:

List<int> myList;

如果可行,那么使用模板的链表的基本实现就是正确的。现在您可以开始创建自己的数据类型,例如员工类(如果您还没有)并使用该数据类型。它应该以完全相同的方式工作。

请注意类模板中的名称“DataType”实际上不是数据类型,而是真实数据类型的占位符,如 int、Employee、...

关于c++链表模板和节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27425149/

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