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输出的值不一样?