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

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

2021-12-31 16:34
26870

图片描述

当基类对象的虚表有多个对象的成员函数的时候,只需要查看具体虚函数反汇编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:

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

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