#include "stdafx.h"
typedef void (*fVoid)();
class A
{
public:
static void test()
{
printf("hello A\n");
}
fVoid print;
A()
{
print = A::test;
}
};
class B : public A
{
public:
static void test()
{
printf("hello B\n");
}
B()
{
print = B::test;
}
};
int main()
{
A aa;
aa.print();
B b;
A* a = &b;
a->print();
getchar();
return 0;
}
這樣做的好處主要是繞過了vtable。我們都知道虛函數表有時候會帶來一些性能損失。