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吗?