目录
原文 C++类的虚函数表和虚函数在内存中的位置_JMW1407的博客-CSDN博客
C++类的虚函数表和虚函数在内存中的位置
关系:虚函数表指针(保存在堆或栈)->虚函数表(常量区 .rodata)->虚函数(代码段 .text)
虚函数表指针是虚函数表所在位置的地址。虚函数表指针属于对象实例。因而通过new 出来的对象的虚函数表指针位于堆,声名对象的虚函数表指针位于栈。
总结:
1.虚函数表指针位置取决于对象在哪。如果是new的对象,则存在堆上,如果是直接声明,则存在栈上。
2.虚函数表位于只读数据段(.rodata),即:C++内存模型中的常量区;
3.虚函数代码则位于代码段(.text),也就是C++内存模型中的代码区