菜鸟求助!代码出现LNK2019错误

喜欢源码 2014-04-29 09:56:22
附带吗:
list.h

#include <iostream>
using namespace std;

const int max = 21;

template<class T>
class listSequence{
private:
T data[max];
int length;
int location;
int loc[max];
public:
listSequence();
listSequence(T data[],int num);
};
list.cpp


#include<iostream>
#include "list.h"
using namespace std;

template<class T>
listSequence<T>::listSequence(){
for (int i = 0; i < max; i++)
data[i] = 0;
for (int m = 0; m < max; m++)
loc[m] = -1;
length = 0;
location = 0;
}

template<class T>
listSequence<T>::listSequence(T data[],int num){
if (num>max) throw "上溢!";
for (int i = 0; i < num; i++)
this.data[i] = data[i];
for (int m = 0; m < max; m++)
loc[m] = -1;
length = 0;
location = 0;
}

main.cpp

#include<iostream>
#include"list.h"
using namespace std;

int main(int argc,char * argv[]){
listSequence<short> listS;
return 1;
}

错误 1 error LNK2019: 无法解析的外部符号 "public: __thiscall listSequence<short>::listSequence<short>(void)" (??0?$listSequence@F@@QAE@XZ),该符号在函数 _main 中被引用 D:\work\DataStruct\DataStruct\zone.obj DataStruct
...全文
147 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
喜欢源码 2014-04-29
  • 打赏
  • 举报
回复

template<class T>
int* listSequence<T>::find(T data){
	for (int i = 0; i < length; i++){
		if (data[i] == data){
			location++;
			loc[location] = i;
		}
		cout << "找到了"<<location<<"个元素!" << endl;
	}
	return loc;
}
错误 1 error C2109: 下标要求数组或指针类型 d:\work\datastruct\datastruct\list.h 52 1 DataStruct 就是if (data[i] == data){这一行
喜欢源码 2014-04-29
  • 打赏
  • 举报
回复
我学习一下,谢谢啊
喜欢源码 2014-04-29
  • 打赏
  • 举报
回复
代码包含了list.h了,为什么连接期间还会出错?
jackyjkchen 2014-04-29
  • 打赏
  • 举报
回复
随便搜一个你看看吧,c++ primer里也有讲,http://vibration.cnblogs.com/archive/2005/06/30/183978.html
喜欢源码 2014-04-29
  • 打赏
  • 举报
回复
把实现写进.h成功了。为什么啊,不能分开写吗?
jackyjkchen 2014-04-29
  • 打赏
  • 举报
回复
用模板请把cpp和h写在一起,模板在编译期生效,而多个cpp在连接期链接,导致你找不到实现 通常的做法有这么几种 1.实现写进h 2.cpp也include进来 3.对于有模板的代码,专门用hpp作为头文件名,表示这是个包含实现的头文件

64,282

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧