虚拟功能和vtable是实现动态二进制插桩(dynamic binary instrumentation)的技术。虚拟功能(virtual functions)是一种对软件方法进行封装和重写的方法,使程序在使用过程中能够看到一组接口,而不关注其内部实现。虚拟化是虚拟功能和虚拟函数实现的一个重要组成部分。
vtable 是虚函数表或虚指针表,是C++中实现虚拟函数机制的基础设施。每个包含虚函数的类都有一个虚函数表,其中包含该类所有虚函数指针。程序在运行时,根据对象的指针类型(指向对象本身或指向其父类对象的指针,通过vtable来确定调用哪个虚函数。当子类覆写基类中的虚函数时,该虚函数的指针就会插入到vtable的相应位置。
实现虚拟功能和vtable的方法主要有以下步骤:
领取专属 10元无门槛券
手把手带您无忧上云