千里之行,始于足下

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

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  刚刚在开发遇上一个令我十分不解的问题。大致情况是这样的:

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

  我用的是 Visual C++ 8.0,非托管代码。
posted on 2006-05-31 16:08  sunwaywei  阅读(493)  评论(4编辑  收藏  举报