class B { public: virtual void foo() {} }; class D: public B { public: D() : mA(0) {} virtual void foo() { cout<<"D::foo::mA "<<mA<<endl; } int mA; }; int main() { D d1; D* pD = &d1; cout<<pD<<endl; typedef void (*PFun)(); PFun fun = (PFun)((long *)*((long *)*(long*)(pD))); fun(); cout<<"D::pD::mA: "<<pD->mA<<endl; } 为啥mA输出的值不一样?
