千里之行,始于足下

酌贪泉而觉爽,处涸辙而犹欢

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  34 随笔 :: 0 文章 :: 189 评论 :: 10 引用
  刚刚在开发遇上一个令我十分不解的问题。大致情况是这样的:

  class A 中有两个纯虚函数,一个是 UpdateBounds(),一个是 UpdateAttribute()。class B 派生自 class A,并实现了这两个函数。然后,class A 中一个函数调用了 UpdateAttribute(),跟踪显示,最后被调用的居然是 class B 的 UpdateBounds(),而不是 class B 的 UpdateAttribute()!真是令我百思不得其解。解决的方法也很奇怪,我把 UpdateAttribute 的名称改为 SetAttribute 就一切 OK 了。疑似编译器在处理虚函数表时抑或是函数换名机制上出错?为了赶开发进度,暂时没有空去研究了。如果有高手遇见过此类问题,请予赐教。

  我用的是 Visual C++ 8.0,非托管代码。
0
0
(请您对文章做出评价)
« 上一篇:为了一个 const 折腾了半天
» 下一篇:郁闷的端午节
posted on 2006-05-31 16:08 sunwaywei 阅读(239) 评论(4)  编辑 收藏 所属分类: 拦路猛虎

评论

#1楼 2006-06-01 23:27 丁丁      
准备报告bug吧,要么就是灵异事件
  回复  引用  查看    

我也遇到过
  回复  引用    

#3楼 2006-07-10 09:27 沐枫      
Rebuild后可以吗?
  回复  引用  查看    

#4楼[楼主] 2006-07-10 09:42 sunwaywei      
@沐枫
不记得当时有没有 Rebuild,事后我也想到了也许 Rebuild 可以解决问题,不过由于没再遇上过,无法知道结果了。呵呵

  回复  引用  查看