虚函数打印-单继承无函数覆盖
struct func1
{
public:
virtual void Box1() {
printf("Box1\n");
}
virtual void Box2() {
printf("Box2\n");
}
};
struct func2 : func1
{
public:
virtual void Box3() {
printf("Box3\n");
}
virtual void Box4() {
printf("Box4\n");
}
};
int main()
{
func2 f2;
printf("F2的sizeof:%d",sizeof(f2));
typedef void(*pfun)(void);
pfun p;
printf("虚函数表地址为:%#x\n", *(int*)&f2);
for (int i = 0; i < 4; i++) {
p = (pfun)*((int*)(*(int*)&f2)+i);
printf("虚函数地址:%#x----", *((int*)(*(int*)&f2)+i));
p();
}
getchar();
return 0;
}