欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

深入了解 C++ 虚拟函数 - &c

最编程 2024-04-14 08:50:27
...

在写一段代码来测试一下:

c1 * pc = new c2();
typedef void (*Func)(void);
Func pFun = (Func)*((int*)*(int*)(pc) + 0);
Func pFun2 = (Func)*((int*)*(int*)(pc)+3);
pFun();
pFun2();

输出结果:

从输出结果上可以看出: 1、虚函数按照其声明顺序放于表中。 2、父类的虚函数在子类的虚函数前面。 如果c2继承c1后重写基类的方法c1:f1(),那么根据之前的测试,他的虚函数表应该是这样的: