关于虚函数 虚函数表解决思路

关于虚函数 虚函数表

#include <iostream>
using namespace std;
class Base
{
public:
 virtual void f(float x)
 {
  cout<<"Base::f(float)"<< x <<endl;
 }
 
};
class Derived : public Base
{
public:
 virtual void ff(float x)
 {
  cout<<"Derived::ff(float)"<< x <<endl;   //多态、覆盖
 }
};
int main(void)
{
Derived d;
 Base * pb = &d;
 Derived * pd = &d;
  
 pb->ff(3.14f);  
 
 return 0;
}

编译器提示:错误 1 error C2039: “ff”: 不是“Base”的成员 e:\program\cpp_test\cpp_test\1.cpp 27 1 cpp_test

这是Derived 类内存布局:
 class Derived size(4):
1>   +---
1>   | +--- (base class Base)
1>   0 | | {vfptr}
1>   | +---
1>   +---
1>  
1>  Derived::$vftable@:
1>   | &Derived_meta
1>   |  0
1>   0 | &Base::f
1>   1 | &Derived::ff
1>  
1>  Derived::ff this adjustor: 0

也就是虚函数表中已经有ff函数了呀,为啥还提示找不到呢,这是在运行时才会找吧?不是编译时。

------解决方案--------------------
我没分了,楼上给我点吧