| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 474 人关注过本帖
标题:关于函数重载的问题,换个地方发,我就不信没人鸟我~~~~~
取消只看楼主 加入收藏
stophin
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:3
帖 子:227
专家分:618
注 册:2010-3-26
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:1 
关于函数重载的问题,换个地方发,我就不信没人鸟我~~~~~
我定义了几个结构体,A、B、C
分别构成了三个链表,现在我要释放他们,对于A,我可以写函数
void freeA(A *pHead)
{
    A* p = pHead;
    A* q;
    while(NULL != p )
    {
        q = p->next ;
        free(p);
        p = q;
    }
    return;
}
释放B链表时再写一个同上的函数,但A全改成B
使用时,调用的是同一个函数名,但由于重载,传递的参数类型不同编译器就会知道调用哪个函数了
但因为三个函数结构功能都是一样的,我在想可不可以只写一个FreeLink函数,让它自动判断是什么结构体类型
(或者不用判断,直接释放指针指向的结构体块),而不用写三个同名不同参函数。
各位大神,帮帮忙,说不定有知道的,能让我优化一下自己的程序,谢谢
搜索更多相关主题的帖子: 结构体 编译器 return 
2012-08-25 17:55
stophin
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:3
帖 子:227
专家分:618
注 册:2010-3-26
收藏
得分:0 
谢谢各位了,我用的是VC++,所以可以使用模板,之前不太经常使用到模板,都快忘记了,谢谢提醒
因为这个函数中我又要将链表释放节点里面存储的数据打印出来,而且每种数据的名称不一样,
就不可能使用模板了,所以我又在模板中调用了几个重载函数,也是可行的,谢谢各位了,散分,先到的多得一分
散分结贴怎么多出一分,难道是系统给的

[ 本帖最后由 stophin 于 2012-8-25 20:35 编辑 ]
2012-08-25 20:33
快速回复:关于函数重载的问题,换个地方发,我就不信没人鸟我~~~~~
数据加载中...
 
   



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

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