c++虚函数理解

来源:互联网 发布:数控车设计图和编程 编辑:程序博客网 时间:2024/05/21 09:25

参考博文:

http://blog.csdn.net/generalhking/article/details/7911595

http://blog.csdn.net/generalhking/article/details/8096222对虚函数分析很透彻

http://blog.csdn.net/generalhking/article/details/8096226

http://blog.csdn.net/generalhking/article/details/8096393侧重于对象大小的讨论

总结知识:

1,空类的对象也会有大小,char的大小,为了给不同的对象以不同的地址

2,包含有虚函数的类有一个vptr指针,指向一个vtbl的表,表中为所有虚函数的地址,虚函数地址顺序按照函数在类中的顺序来,派生的类中增加虚函数的地址在表的末端加上,如有虚函数的重载,相应位置的虚函数地址被新的虚函数地址覆盖,有虚函数的类申明的对象除了数据大小外,还有一个vptr指针的大小,这个指针是在对象所占空间的起始位置,指针类型为void*。