介绍
1.编译器通过指针或引用调用虚函数,不会立即生成函数调用指令,而是用 二级函数指针 代替
1.1确定真实类型
1.2找到虚函数表从而找到入口地址
1.3根据入口地址调用函数(PS:俗称 函数指针)
** 虚函数表 内部存储格式展示**

代码图详解

源码
#include<iostream>
#include<string>
using namespace std;
class N
{
public:
void foo()
{
cout << "N::foo" << endl;
}
void ber()
{
cout << "N::ber" << endl;
}
int m_a;
int m_b;
};
class A
{
public:
virtual void foo()
{
cout << "A::foo" << endl;
}
virtual void ber()
{
cout << "A::ber" << endl;
}
double m_a;
int m_b;
};
class B:public A
{
public:
void foo()
{
cout << "B::foo" << endl;
}
void ber(
虚函数表与动态静态联编:源码解析与运行结果

最低0.47元/天 解锁文章
6657

被折叠的 条评论
为什么被折叠?



