![]() |
#2
yuccn2012-04-29 10:19
|

#include<iostream>
using namespace std;
class A
{
virtual void g()
{
cout<<"A::g()"<<endl;
}
virtual void f()
{
cout<<"A::f()"<<endl;
}
};
class B : public A
{
void g()
{
cout<<"B::g()"<<endl;
}
/* void f()
{
cout<<"B::f()"<<endl;
}
*/
virtual void h()
{
cout<<"B::h()"<<endl;
}
};
typedef void (*Fun)();
int main()
{
B b;
Fun pFun;
for(int i = 0 ; i < 3 ; ++i)
{
pFun = (Fun)*((int*)*(int*)(&b) + i);
pFun();
}
}
请问一下这个程序,主要是pFun = (Fun)*((int*)*(int*)(&b) + i); using namespace std;
class A
{
virtual void g()
{
cout<<"A::g()"<<endl;
}
virtual void f()
{
cout<<"A::f()"<<endl;
}
};
class B : public A
{
void g()
{
cout<<"B::g()"<<endl;
}
/* void f()
{
cout<<"B::f()"<<endl;
}
*/
virtual void h()
{
cout<<"B::h()"<<endl;
}
};
typedef void (*Fun)();
int main()
{
B b;
Fun pFun;
for(int i = 0 ; i < 3 ; ++i)
{
pFun = (Fun)*((int*)*(int*)(&b) + i);
pFun();
}
}
的含义,Thanks