首页
社区
课程
招聘
[原创]一图看懂C++虚函数的动态绑定
发表于: 2021-12-31 16:34 26887

[原创]一图看懂C++虚函数的动态绑定

2021-12-31 16:34
26887

图片描述

当基类对象的虚表有多个对象的成员函数的时候,只需要查看具体虚函数反汇编call的eax值就可以判断出虚基类的真实对象身份。

class Person
{
public:
    Person() : age(30)
    {
    }
 
    virtual void print()
    {
        printf("The person‘s age = %d\n", age);
    }
 
protected:
    int age;
};
 
class Teacher : public Person
{
public:
    virtual void print()
    {
        printf("The teacher's age = %d\n", age);
    }
};
 
class Student : public Person
{
public:
    virtual void print()
    {
        printf("The student age = %d\n", age);
    }
};
 
Person* createRole()
{
    new Teacher;
    return new Student;
}
class Person
{
public:
    Person() : age(30)
    {
    }
 
    virtual void print()
    {
        printf("The person‘s age = %d\n", age);
    }
 
protected:
    int age;
};
 
class Teacher : public Person
{
public:

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2021-12-31 16:39 被_THINCT编辑 ,原因:
收藏
免费 3
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//