Visual Studio 2015调试器不执行派生类虚函数覆盖?

时间:2017-06-01 20:24:23

标签: c++ visual-studio-2015 virtual-functions

以下是在Visual Studio 2015中测试的最小工作示例:

class A
{
   virtual void X() {}
};

class B : public A
{
public:
   virtual bool Y() { return false; }
};

class C : public B
{
public:
   virtual bool Y() override { return true; }
};

int main()
{
   B* b = new C;

   bool result = b->Y();
}

result的值是预期的true。但是,监视表达式b->Y()的计算结果为false

如果我在上面的X课程中注释掉了虚拟函数A,那么在监视表达式中评估的resultb-Y()都是true

在我看来,调试器评估引擎只尊重继承链中最顶层的虚拟表...这是正确的吗?我能做些什么来解决这个问题吗?

0 个答案:

没有答案