![]() |
浏览:4452007-12-10 09:49 来自红泥 : 虚方法调用时方法的方法表位移值是由对象的声明类型决定的,实际调用的方法是由对象的实际类型决定的。也就是objreference-->typehaddle(对象实际类型)-->methodTableAddress+offset(对象声明类型决定)
Base a = new Derived();a.VirtualFunction() 编译器生成的IL是这样的:callvirt Base::VirtualFunction(),是不是对上面的证明? 有点乱,理解的对不? 楼主
|