高分求教,关于函数是否能返回自定义结构?

kingcy 2002-05-17 10:55:23
struct mystruct{
CString ipdata;
CString myseqno;
CString pdata;

};是我定义的一个存储结构,并想用做链表结构CList的数据
声明如下CList<mystruct,mystruct> mylist;
第一个问题:mylist 能用做变量吗?有的参考书上要求CList为模板:
CList<mystruct,mystruct&> CMylist;
CMylist mylist;
这样定义时编译出错,请问是不是书上写错了!

第二个问题是我想用通用类CMapStringToOb 做一个查询函数,关键字为mystruct中的
ipdata+myseqno,返回值为mylist,我作的函数如下:
CList<mystruct,mystruct&> Findmap(struct mystruct *pa)//建立hash表处理
{
CList<mystruct,mystruct&> mylist1;
if(map.Lookup( pa->ipdata+pa->myseqno, (CObject*&)mylist1 ))
return mylist;
else
{
map.SetAt( pa->ipdata+pa->myseqno, mylist1=new mylist);
return mylist1;
}
}

该函数我修改了多次,参数总是不对,请用过clist或CMap类的高手指教,不胜感激,帮忙解决问题的高分回报!谢谢!
...全文
9 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
kingcy 2002-05-19
ok!I see,thanks!
回复
jimconrad 2002-05-18
谢谢freelybird
回复
freelybird 2002-05-18
对的,你做的没错.

参数:CMystructlist*& mylist1 是指针的引用,从形式上看你把它当成指针,但实际上传递的参数是一个指向指针的指针
如同int& a;
回复
jimconrad 2002-05-17
问题1:
你可能看错了吧!应该是
typedef CList<mystruct,mystruct&> CMylist;
CMylist mylist;//相当于 CList<mystruct,mystruct&> mylist;
这样才对!
回复
kingcy 2002-05-17
多谢!多谢!
不过还有个问题,就是在调用FindMap时,返回mylist什么类型?怎么调用它AddTail的函数,我是初学者,请指教!
CMystructlist *mylist;
Findmap(spacket, mylist);
回复
freelybird 2002-05-17
void Findmap(struct mystruct *pa, CMystructlist*& mylist1)//注意这是一个指针的引用CMystructlist*& mylist1
{
if(map.Lookup( pa->ipdata+pa->myseqno, mylist1 ))
return ;
else
{
mylist1=new CMystructlist;
map.SetAt( pa->ipdata+pa->myseqno, mylist1);
}
}

回复
freelybird 2002-05-17
1 typedef CList<mystruct,mystruct&> CMystructlist;//CMystructlist现在就是一个新的class
2 第二个问题,我认为不对,因为据我所知,这种数据结构模板类没有拷贝初始化函数.所以你只能传指针回来或做一个参数返回

void Findmap(struct mystruct *pa, CMystructlist*& mylist1)//注意这是一个指针的引用CMystructlist*& mylist1
{
if(map.Lookup( pa->ipdata+pa->myseqno, mylist1 ))
return ;
else
map.SetAt( pa->ipdata+pa->myseqno, mylist1=new CMystructlist);

}




回复
kingcy 2002-05-17
谢谢jimconrad(jimmy)
不过书我没有看错,第二个问题能帮我解决一下吗?
有时间的话帮帮忙,分数就是你的了:)
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2002-05-17 10:55
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……