虚函数表博文总结

对虚函数实现方式的理解:
1.每个有虚函数的类都有虚函数表,记录了继承的虚函数、自己重载的虚函数的地址。
2.多重继承时,有多个虚函数表,每继承一个父类产生一个虚函数表。
3.构造函数构造对象时,在对象所在内存的首地址放置虚函数表的地址;如果这个类有多个虚函数表就放置多个虚函数表的地址。
4.虚函数表是在编译时生成的。如果某个类,在程序中就没有被使用,也就是没有实例化类,那么这个类的虚表就不会产生。虚表里的指针值是在程序加载时确定的。
5.程序运行时,从对象的开始地址获取虚函数表的地址,然后再从虚函数表获取函数的地址。这些信息在编译时就可以获取。


从下面三个非常棒的博文可以更好的理解虚函数的实现方式。

http://blog.csdn.net/linyt/article/details/6336762
http://blog.csdn.net/zhanglei8893/article/details/6333751


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章