关于类的内存问题

来源:互联网 发布:Linux xmonad 编辑:程序博客网 时间:2024/05/21 17:01

在C++中,如果类中有虚函数,那么它就会有一个虚函数表的指针__vfptr,在类对象最开始的内存数据中。之后是类中的成员变量的内存数据。
在调用类中的虚函数时(如64位程序调用第二个虚函数):
类的指针为Classptr,则会先取__vfptr=*(_QWORD *)Classptr (即取Classptr的前8个字节为虚函数表的地址),在虚函数表中,每8个字节存放一个虚函数的地址,故取第二个虚函数的地址为__vfptr+8
关于更多的类的内存问题参考:
http://www.cnblogs.com/bizhu/archive/2012/09/25/2701691.html