gpt4 book ai didi

c++ - 错误LNK2019简单链表实现

转载 作者:行者123 更新时间:2023-11-28 03:34:29 25 4
gpt4 key购买 nike

我正在实现一个简单的链表,但我一直收到 LNK2019 错误,我将我的代码简化到最低限度以跟踪问题,但我一直收到它。我正在使用 Visual Studio 2010。我的头文件是:

#ifndef __TSLinkedList__H__
#define __TSLinkedList__H__

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "LinkedNode.h"

template <class T>
class LinkedList
{
public:
LinkedList(void);
~LinkedList(void);
protected:
LinkedNode<T> * head;
};

实现文件是:

#include "StdAfx.h"
#include "LinkedList.h"

template <class T>
LinkedList<T>::LinkedList(void)
{
head = NULL;
}
template <class T>
LinkedList<T>::~LinkedList(void)
{
}

主要功能是:

#include "stdafx.h"
#include "stdlib.h"
#include "LinkedList.h"

int _tmain(int argc, _TCHAR* argv[])
{
LinkedList<int> mList;
system("PAUSE");
return 0;
}

我收到这个错误:

错误 1 ​​error LNK2019: símbolo externo "public: __thiscall LinkedList::~LinkedList(void)"(??1?$LinkedList@H@@QAE@XZ) in function _wmain

我在构造函数中遇到了同样的错误。有趣的是,它指向_wmain,而我的主函数叫做_tmain。我已经尝试将子系统链接器从/SUBSYSTEM:WINODWS 更改为/SUBSYSTEM:CONSOLE,但它已经设置为/SUBSYSTEM:CONSOLE。显然我的实现做的远不止于此,但我删除了所有这些来跟踪这个问题。帮助 wpuld be apreciated,这让我发疯。我是 C++ 新手。

最佳答案

将函数实现移至头文件。

为了生成专门化的代码,编译器必须定义每个翻译单元可用的函数。

#ifndef __TSLinkedList__H__
#define __TSLinkedList__H__

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "LinkedNode.h"
template <class T>
class LinkedList
{
public:
LinkedList(void);
~LinkedList(void);
protected:
LinkedNode<T> * head;
};

template <class T>
LinkedList<T>::LinkedList(void)
{
head = NULL;
}
template <class T>
LinkedList<T>::~LinkedList(void)
{
}

#endif

关于c++ - 错误LNK2019简单链表实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11454523/

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