| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 882 人关注过本帖
标题:请高手进来指教!!
只看楼主 加入收藏
dianpozi
Rank: 1
等 级:新手上路
帖 子:65
专家分:0
注 册:2004-10-31
收藏
 问题点数:0 回复次数:3 
请高手进来指教!!

#include<iostream.h> #include<string.h> template <class TElem> class TLinearList0 { protected: public: long len; //属性,表示线性表的长度。 virtual TElem & Get(long idx)=0; virtual TElem * Set(long idx,TElem & elem)=0; virtual TElem * Prior(long idx)=0; virtual TElem * Next(long idx)=0; virtual TElem * GetAddress(long idx)=0; virtual long CountELem(TElem & elem)=0; virtual long Locate(TElem & elem,long sn=1)=0; virtual long Locate(TElem & elem,long * foundElem)=0; virtual long LocateFirst(TElem & elem)=0; virtual long LocateNext(TElem & elem)=0; virtual TElem * Insert(TElem & elem,long sn=1)=0; virtual TElem * Delete(long sn=1)=0; }; template <class TElem> class TLinearListSqu : public TLinearList0<TElem> //派生类。 { protected: TElem *room; //room相当一维树组,其元素类型为可变类型TElem long size; long lastVisited; TElem buffElem; long ResizeRoom(long newSize); long CopyRoom(TElem * objRoom,long nl,TElem * srcRoom,long n2); public: TLinearListSqu(void); TLinearListSqu(long mSize); ~TLinearListSqu(void); virtual TElem & Get(long idx); virtual TElem * GetAddress(long idx); virtual TElem * Set(long idx,TElem & elem); virtual TElem * Prior(long idx); virtual TElem * Next(long idx); virtual long CountElem(TElem & elem); virtual long Locate(TElem & elem,long sn=1); virtual long Locate(TElem & elem,long * foundElemIndex); virtual long LocateFirst(TElem & elem); virtual TElem * Insert(TElem & elem); virtual TElem * Delete(long sn=1); virtual long DeleteByIndex(long * idxTobeDel,long numIdx,TElem * elemDeleted=NULL); void Print(); }; //初始化 template<class TElem> TLinearListSqu<TElem>::TLinearListSqu() { size=0; len=0; room=NULL; }; template<class TElem> TLinearListSqu<TElem>::TLinearListSqu(long mSize) { size=0; room=NULL; len=0; if(mSize<1) throw TExceLinearList(2); room=new(nothrow) TElem[msize]; if(room==NULL) throw TExcepLinearList(3); size=mSize; }; template <class TElem> TLinearListSqu<TElem>::~TLinearListSqu(void) { if(room!=NULL)delete[]room; }; //元素直接访问 //实现访问和存储 template <class TElem> TElem & TLinearListSqu<TElem>::Get(long idx) { if(idx<0||idx>=len) throw TExcepLinearList(1); return room[idx]; };

就是下面的函数,一编译就出问题。 TElem *TLinearListSqu<TElem>::GetAddress(long idx) { if(idx<0||idx>=len) throw TExcepLinearList(1); return &room[idx]; };

请帮帮我!!!

搜索更多相关主题的帖子: 指教 
2004-11-16 01:03
dianpozi
Rank: 1
等 级:新手上路
帖 子:65
专家分:0
注 册:2004-10-31
收藏
得分:0 

我写清楚点!!!!!

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

就是下面的函数,一编译就出问题

TElem *TLinearListSqu<TElem>::GetAddress(long idx) {

if(idx<0||idx>=len) throw TExcepLinearList(1); return &room[idx]; };

请帮帮我!!!

2004-11-16 01:08
corrupt
Rank: 2
等 级:新手上路
威 望:3
帖 子:535
专家分:0
注 册:2004-9-29
收藏
得分:0 

不知道 楼主 这个程序 是抄的还是自己写的?

return &room[idx]; ——》 改成 return room+idx;

试试 !

你这个程序我有点看不懂,throw TExcepLinearList(1); 不知道是什么意思??

我比较差啊,


2004-11-16 10:26
dianpozi
Rank: 1
等 级:新手上路
帖 子:65
专家分:0
注 册:2004-10-31
收藏
得分:0 

我已经解决了,谢谢大家!!!

2004-11-16 12:50
快速回复:请高手进来指教!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016758 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved