设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 746|回复: 4
打印 上一主题 下一主题

重载 *出问题阿

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-3 02:18:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<iostream.h>
template <class Type>
class seqList
{
friend ostream & operator<<(ostream& ,const seqList&); //重载流输出运算符
friend istream & operator>>(istream&,seqList&); //重载流输入运算符
public:
seqList ( int MaxSize = defaultSize );
~seqList ( ) { delete [ ] data; }

int length ( ) const { return last+1; }
int find ( Type & x ) const;
int isIn ( Type & x );

int insert ( Type & x, int i );

int remove ( Type & x );

int next ( Type & x ) ;

int prior ( Type & x ) ;
int isEmpty ( ) { return last ==-1; }
int isFull ( ) { return last == MaxSize-1; }
Type get ( int i )
{
return i < 0 || i > last?NULL : data[i];
}
private:
Type *data; //顺序表存储数组
int maxSize; //最大允许长度
int last; //当前最后元素下标
};
////////////////////////////////////////////////////////////
#include<iostream.h>
#include"list.h"
template <class Type>

seqList<Type> :: seqList ( int sz )
{ //构造函数
if (sz>0)
{
maxSize = sz;
last = -1;

data = new Type[maxSize];
if ( data == NULL )
{
maxSize = 0;
last = -1;
return;
}
}
}
template <class Type>
int seqList<Type>::find ( Type & x ) const
{
//搜索函数:在表中从前向后顺序查找 x
int i = 0;
while ( i <= last && data[i] != x )
i++;
if ( i > last )
return -1;
else
return i;
}
template <class Type>
int seqList<Type>::insert ( Type & x, int i )
{//在表中第 i 个位置插入新元素 x
if ( i < 0 || i > last+1 || last == maxSize-1 )
return 0; //插入不成功
else
{
last++;

for ( int j = last; j > i; j-- )
data[j] = data[j -1];

data[i] = x;
return 1; //插入成功
}
}
template <class Type>
int seqList<Type>::remove ( Type & x )
{//在表中删除已有元素 x
int i = find (x); //在表中搜索 x
if ( i >= 0 )
{
last-- ;

for ( int j = i; j <= last; j++ )
data[j] = data[j+1];
return 1; //成功删除
}

return 0; //表中没有 x
}
template <class Type>
istream&operator>>(istream& input,seqList<Type> &a)//重载>>函数的实现
{
for(int i=0;i<a.maxSize;i++)
input>>a.date[i];
return input;
}
template <class Type>
ostream& operator<<(ostream &output,const seqList<Type> &a)//重载<<函数的实现
{
int i=0;
for(i=0;i<a.maxSize;i++)
{
output<<" "<<a.date[i];
}
output<<endl;
return output;
}
//////////////////////////////////////////////
#include<iostream.h>
#include"list.h"
template <class Type>
void Intersection ( seqList<Type> & LA,seqList<Type> & LB )
{
int i=0,j=0;
Type temp;
aLen=LA.length();
for(i=0;i<aLen;i++)
{
temp=A.get(i);
bLen=LB.length();
if(i==0)
{
LB.insert(temp,i);
}
else
{
for(j=0;j<bLen;)
{
if(temp>LB.get(j))
j++;
else
{
LB.insert(temp,j);
break;
}
}
}
}
}
template <class Type>
int main()
{
seqList A(5),B(5);

cout<<"please enter five number to initial A:\n";
cin>>A;
cout<<A<<endl;
Intersection (A,B);
cout<<"B:"<<B<<endl;
return 1;
}


为什么通不过阿 模版去掉就好了
提示错误
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/list.exe : fatal error LNK1120: 1 unresolved externals
谢谢
2#
发表于 2009-11-3 02:18:41 | 只看该作者
我急用啊  
在编写string.h 头文件时候也出同样的错误
回复 支持 反对

使用道具 举报

3#
发表于 2009-11-3 02:18:42 | 只看该作者
friend ostream & operator<<(ostream& ,const seqList&); //重载流输出运算符
friend istream & operator>>(istream&,seqList&); //重载流输入运算符
函数声明错了加个<Type>
回复 支持 反对

使用道具 举报

4#
发表于 2009-11-3 02:18:43 | 只看该作者
在那里加<Type>
回复 支持 反对

使用道具 举报

5#
发表于 2009-11-3 02:18:44 | 只看该作者
你自己定义的时候是对的,你看看你的定义部分吧
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-18 09:38 , Processed in 0.077677 second(s), 10 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

快速回复 返回顶部 返回列表