c++程序错误
时间:2011-12-18
来源:互联网
error LNK2001: unresolved external symbol "public: virtual int __thiscall dataList<int,int>::SeqSearch(int)const " (?SeqSearch@?$dataList@HH@@UBEHH@Z)
那个SeqSearch()函数在后面有定义,然后不知道这是为什么错了,求各位高手指教!!
那个SeqSearch()函数在后面有定义,然后不知道这是为什么错了,求各位高手指教!!
作者: dfafe 发布时间: 2011-12-18
把代码贴上来
作者: shenxinji 发布时间: 2011-12-18
在后面定义的函数,使用前有没有函数声明?
作者: nuaazdh 发布时间: 2011-12-18
search.h
#include <iostream>
using namespace std;
#include <assert.h>
const int defaultSize=100;
template<class E,class K>
class dataList; //数据表的前视定义
template<class E,class K>
class dataNode //数据表中结点类的定义
{
friend class dataList<E,K>;//申明友元类为dataList
public:
dataNode(const K x):key(x){}//构造函数
K getKey()const {return key;}//读取关键码
void setKey(K k){key=k;}//修改关键码
K key;//关键码
};
template<class E,class K>
class dataList //数据表类定义
{
public:
dataList(){}
dataList(dataList<E,K>& R);//复制构造函数
virtual ~dataList(){delete []Element;}
int Length(){return CurrentSize;}//求表的长度
virtual K getKey(int i)const//提取第i个元素值
{assert(i>0||i<=CurrentSize);return Element[i-1].key;}
virtual void setKey(K x,int i)//修改第i个元素值
{assert(i>0||i<=CurrentSize);Element[i-1].key=x;}
virtual int SeqSearch(const K x)const;//搜索
public:
dataNode<E,K> *Element;
int ArraySize,CurrentSize;
};
template<class E,class K>
class searchList:public dataList<E,K>//公有继承,增加成员函数
{
public:
searchList(){}
int SeqSearch(K x)const;
friend ostream& operator<<(ostream& out,const dataList<E,K>& OutList);
friend istream& operator>>(istream& in,dataList<E,K>& InList);
};
template<class E,class K>
int searchList<E,K>::SeqSearch(K x) const
{
Element[CurrentSize].key=x;
int i=0;
while(Element[i].key!=x) i++;
return i+1;
};
template<class E,class K>
ostream& operator<<(ostream& out,const dataList<E,K>& OutList)
{
out<<"Array Contents:"<<endl;
for(int i=1;i<=OutList.CurrentSize;i++)
out<<OutList.Element[i-1].key<<' ';
out<<endl;
out<<"Array Current Size:"<<OutList.CurrentSize<<endl;
return out;
};
template<class E,class K>
istream& operator>>(istream& in,dataList<E,K>& InList)
{
cout<<"Enter array Current Size:";
in>>InList.CurrentSize;
cout<<"Enter array elements:"<<endl;
for(int i=1;i<=InList.CurrentSize;i++)
{cout<<"Element"<<i<<":";in>>InList.Element[i-1].key;}
return in;
};
main.cpp
#include <iostream>
using namespace std;
#include "search.h"
const int Size=10;
void main()
{
searchList<int,int> L1;
int Target;int Location;
cin>>L1;cout<<L1;
cout<<"Search for a integer:";
cin>>Target;
if((Location=L1.SeqSearch(Target))!=L1.Length())
cout<<"Found at index"<<Location<<endl;
else
cout<<"Not Found"<<endl;
}
就是这些,可以帮我看下吗?
#include <iostream>
using namespace std;
#include <assert.h>
const int defaultSize=100;
template<class E,class K>
class dataList; //数据表的前视定义
template<class E,class K>
class dataNode //数据表中结点类的定义
{
friend class dataList<E,K>;//申明友元类为dataList
public:
dataNode(const K x):key(x){}//构造函数
K getKey()const {return key;}//读取关键码
void setKey(K k){key=k;}//修改关键码
K key;//关键码
};
template<class E,class K>
class dataList //数据表类定义
{
public:
dataList(){}
dataList(dataList<E,K>& R);//复制构造函数
virtual ~dataList(){delete []Element;}
int Length(){return CurrentSize;}//求表的长度
virtual K getKey(int i)const//提取第i个元素值
{assert(i>0||i<=CurrentSize);return Element[i-1].key;}
virtual void setKey(K x,int i)//修改第i个元素值
{assert(i>0||i<=CurrentSize);Element[i-1].key=x;}
virtual int SeqSearch(const K x)const;//搜索
public:
dataNode<E,K> *Element;
int ArraySize,CurrentSize;
};
template<class E,class K>
class searchList:public dataList<E,K>//公有继承,增加成员函数
{
public:
searchList(){}
int SeqSearch(K x)const;
friend ostream& operator<<(ostream& out,const dataList<E,K>& OutList);
friend istream& operator>>(istream& in,dataList<E,K>& InList);
};
template<class E,class K>
int searchList<E,K>::SeqSearch(K x) const
{
Element[CurrentSize].key=x;
int i=0;
while(Element[i].key!=x) i++;
return i+1;
};
template<class E,class K>
ostream& operator<<(ostream& out,const dataList<E,K>& OutList)
{
out<<"Array Contents:"<<endl;
for(int i=1;i<=OutList.CurrentSize;i++)
out<<OutList.Element[i-1].key<<' ';
out<<endl;
out<<"Array Current Size:"<<OutList.CurrentSize<<endl;
return out;
};
template<class E,class K>
istream& operator>>(istream& in,dataList<E,K>& InList)
{
cout<<"Enter array Current Size:";
in>>InList.CurrentSize;
cout<<"Enter array elements:"<<endl;
for(int i=1;i<=InList.CurrentSize;i++)
{cout<<"Element"<<i<<":";in>>InList.Element[i-1].key;}
return in;
};
main.cpp
#include <iostream>
using namespace std;
#include "search.h"
const int Size=10;
void main()
{
searchList<int,int> L1;
int Target;int Location;
cin>>L1;cout<<L1;
cout<<"Search for a integer:";
cin>>Target;
if((Location=L1.SeqSearch(Target))!=L1.Length())
cout<<"Found at index"<<Location<<endl;
else
cout<<"Not Found"<<endl;
}
就是这些,可以帮我看下吗?
作者: dfafe 发布时间: 2011-12-18
virtual int SeqSearch(const K x)const;//搜索
改成:
virtual int SeqSearch(const K x){return 0;}//搜索
改成:
virtual int SeqSearch(const K x){return 0;}//搜索
作者: agoago_2009 发布时间: 2011-12-18
dataList类的函数
virtual int SeqSearch(const K x)const;//搜索
没有实现
virtual int SeqSearch(const K x)const;//搜索
没有实现
作者: hui12345685 发布时间: 2011-12-18
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28