所以,我在玩 Visual Studio 的测试套件,发现了一些有趣的东西:
我在地址上有一个 A 类的实例,比如说,0x0656a64c
。然后当我查看变量时,它说它__vfptr
指向0x077e7c0c
。
据我所知,一个类的虚拟表指针应该位于类实例的前 4 个字节(或 64 位应用程序上的 8 个字节),除非它是多重继承的情况(那么它只是第一个的偏移量)虚表地址)。
我观察到 Visual Studio 将我的测试编译成 .dll 并运行其测试工具动态加载 .dll。
这可能是导致地址差异的原因吗?
这是VS调试器的截图