VC6.0,重载,同名函数参数分别为常量引用与整型,会调用错函数,BUG?

老夏 2007-10-24 02:45:08
最近程序有些不正常,发现一个问题:
我的类三重继承,顶层基类是虚类,有个纯虚函数:
virtual BOOL Load(const CString& strNO)=0;
第二层基类也是虚类,实现了那个纯虚函数,并增加了一个非虚函数:
virtual BOOL Load(long lID);
最后那个类重写了最顶层基类的纯虚函数virtual BOOL Load(const CString& strNO)。
编译没问题。
调用Load()的时候,参数为long,调试发现调用的不是virtual BOOL Load(long lID);这个函数,而是virtual BOOL Load(const CString& strNO);这个函数。

const CString&是一个常量地址,地址是一个整数,所以long也可以作为常量地址,VC6.0不能区分这种情况,是BUG吗?
...全文
86 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZiSheng 2007-11-30
  • 打赏
  • 举报
回复
明白多谢楼上
Gavin001 2007-10-25
  • 打赏
  • 举报
回复
引用也是传地址的
ZiSheng 2007-10-25
  • 打赏
  • 举报
回复
const CString&是一个常量地址,地址是一个整数,所以long也可以作为常量地址,VC6.0不能区分这种情况,是BUG吗?
///////
它是一个const引用不是地址吧!。
Yofoo 2007-10-25
  • 打赏
  • 举报
回复
不能叫Bug, 这是规则

你可以把函数改名, 或者用指针代替引用
Chivalry 2007-10-24
  • 打赏
  • 举报
回复
mark,期待高人解答

16,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

试试用AI创作助手写篇文章吧