佚名通过本文主要向大家介绍了每日一文,一文不名,12万买块陨石一文不值,一文不值,一文不名的意思等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 感觉<<深入研究虚函数和vtable>>一文里面说的不太对
描述:
描述:
我以前是习惯用C得,但这次老板要求写一个ie的控件,只好硬着头皮看点面向对象的东西先。
下午在csdn的visualc++的文摘区读到<<深入研究虚函数和vtable>>一文,感觉东西角度写的还行,但细节上还值得推敲。
全文帖不下,略。
我认为,在没有使用优化编译选项的前提下,
实际上用到了虚函数的类都会增加且只增加一个指针,这个指针是指向虚函数表vtable的,在Vc++6.0中被编译为__vfptr。
但是这个指针绝对不是指向文中所说的
00401032 jmp Parent::Function2 (0040bfe0)
00401037 jmp Parent::Parent (004010d0)
0040103C jmp Child::Function2 (00401250)
00401041 jmp Child::Child (004011c0)
这个表的!
而是中间还存在另外一个表,表中仅存了这个类中被实例化的虚函数的指针且表的大小为n*4btye,
这些指针才指向jmp ***这些指令。
也就是说,中间要多经过一道指针跳转的程序。