C++ error LNK2001: unresolved external symbol _main

来源:百度知道 编辑:UC知道 时间:2024/06/15 08:36:08
#include<iostream>
#include<time.h>
#include<stdlib.h>

using namespace std;

template<class T>
class List;
template<class T>
class ListNode
{
public:
friend class List;
void output();
private:
T data;
ListNode *next;
};

template<class T>
void ListNode<T>::output()
{
cout<<data;
};

template<class T>
class List
{
public:
List(){first=new ListNode<T>;}//构造函数
List(int x); //构造一个具有i个结点且每个结点内都有随机数字的List
List(List<T> &L){}
~List(){}
ListNode<T> * locate(int i);//寻找第i个结点,若找到,则返回第i个结点的地址,若找不到,则返回NULL
ListNode<T> max(); //在单链表中确定值最大的结点
int number(T x); //统计单链表中具有给定x的所有元素
List<T> create(T *p); //根据一维数组建立一个单链表,使单链表中各元素的次序与数组中各元素的次序相同
bool tidyup(); //在非递减有序的单链表中删除值相同的多余结点
void shuchu();
private:

main 函数里面不能再用模板参数,必须指定明确的类型,如:List<int>。。。
main 上面那句template <class T>删了

你全部用模板参数,太含糊了,系统没法分辨了。 所有的函数声明都没有函数实现。如果时空函数加{}。

标签: link错误

LINK错误总结1

学习VC++时经常会遇到链接错误LNK2001,该错误非常讨厌,因为对于

编程者来说,最好改的错误莫过于编译错误,而一般说来发生连接错误时,

编译都已通过。产生连接错误的原因非常多,尤其LNK2001错误,常常使人不

明其所以然。如果不深入地学习和理解VC++,要想改正连接错误LNK2001非

常困难。

初学者在学习VC++的过程中,遇到的LNK2001错误的错误消息主要为:

unresolved external symbol “symbol”。

如果连接程序不能在所有的库和目标文件内找到所引用的函数、变量或

标签,将产生此错误消息。一般来说,发生错误的原因有两个:一是所引用

的函数、变量不存在、拼写不正确或者使用错误;其次可能使用了不同版本

的连接库。

以下是可能产生LNK2001错误的原因:

一.由于编码错误导致的LNK2001。

1.不相匹配的程序代码或模块定义文件能导致LNK2001。例如,

如果在C++ 源文件内声明了一变量“var1”,却试图在另一文件内以变量

“VAR1”访问该变量,将发生该错误。

2.如果使用的内联函数是在.CPP文件内定义的,而不是在头文件内定

义将导致LN