C++中的模板
Template in C++
本文关键字:C++ 更新时间:2023-10-16
我正在尝试实现一个存储多种类型项目的单向链表。所以我遇到了模板,但是当我尝试运行以下代码时,编译器给了我几个链接错误(LNK 2019:未解析的外部符号)。我还没有真正做任何事情,也无法弄清楚出了什么问题。谁能指出我的错误??
Singlylinkedlist.h
template <class Item>
class SinglyLinkedList
{
public:
SinglyLinkedList();
~SinglyLinkedList();
private:
template <class I>
struct Node {
I item;
Node<I> *next;
};
Node<Item> *head;
};
单链接列表.cpp
#include "singlylinkedlist.h"
template <class Item>
SinglyLinkedList<Item>::SinglyLinkedList()
{
head = NULL;
}
主.cpp
#include <iostream>
#include "singlylinkedlist.h"
using namespace std;
int main()
{
SinglyLinkedList<string> list;
}
代码存在许多小问题,例如,您尚未实现析构函数,并且您实际上不需要模板化 Node。按如下方式更改您的实现,
// singlylinkedlist.h
template <class Item>
class SinglyLinkedList
{
public:
SinglyLinkedList() : head(NULL) {}
~SinglyLinkedList() {}
private:
struct Node {
Item item;
Node *next;
};
Node *head;
};
// main.cpp
#include "singlylinkedlist.h"
using namespace std;
int main()
{
SinglyLinkedList<string> list;
}
您没有实现析构函数:
template <class Item>
SinglyLinkedList<Item>::~SinglyLinkedList()
{
//cleanup
}
相关文章:
- 没有找到相关文章