最近闲逛v2ex的时候,发现了这么一个帖子:求助 C++大神看一个问题。
点进去一看代码,一脸懵逼,这是啥。。。
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;
}