首页
论坛
课程
招聘
[原创]一图看懂C++虚函数的动态绑定
2021-12-31 16:34 24271

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

2021-12-31 16:34
24271
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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;
}

图片描述

 

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


【公告】 讲师招募 | 全新“预付费”模式,不想来试试吗?

最后于 2021-12-31 16:39 被_THINCT编辑 ,原因:
收藏
点赞0
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回