【发布时间】:2013-12-28 08:10:39
【问题描述】:
我正在尝试实现一个存储多种类型项目的单链表。所以我遇到了模板,但是当我尝试运行以下代码时,编译器给了我几个链接错误(LNK 2019:未解析的外部符号)。我还没有真正做任何事情,也不知道出了什么问题。谁能指出我的错误??
单链表.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;
}
main.cpp
#include <iostream>
#include "singlylinkedlist.h"
using namespace std;
int main()
{
SinglyLinkedList<string> list;
}
【问题讨论】:
-
Node结构不需要额外的模板参数,只需使用外部类中的Item参数即可。 -
感谢您的回复 πάντα ῥεῖ 和 Mat。我实际上发现我的问题是因为我需要将 SinglyLinkedList
*list 声明为 main() 中的指针。不过我不太确定为什么.. -
谢谢你的评论,juanchopanza
-
@QQO 这并不能真正解决你的问题!!尝试初始化这个指针,你会再次遇到同样的编译错误。
-
你说得对,πάντα ῥεῖ,它不起作用。感谢您为我指出这一点。