C++中,通过虚函数表,可以访问基类的私有成员函数:
Reference : [url]http://blog.csdn.net/hairetz/archive/2009/04/29/4137000.aspx[/url]
#include <iostream>
using namespace std;
class Base{
private:
virtual void f() {cout << "Base::f" << endl;}
};
class Derive : Base{
};
typedef void(*Fun) (void);
int main() {
Base b;
Fun pFun = NULL;
cout << "virtual table's address is " << (int *) (&b) << endl;
cout << "the first func's address of virtual table is " << (int *) * (int *) (&b) << endl;
Derive d;
pFun = (Fun) * ((int*) * (int*) (&d) + 0);
pFun();
// delete pFun; // can't delete a function pointer
return 0;
}
Reference : [url]http://blog.csdn.net/hairetz/archive/2009/04/29/4137000.aspx[/url]