虚函数表
每一个类最多只有一个虚函数表,在类中如果有虚函数,在编译的时候系统会生成一个虚函数表,存放在只读数据段.rodata。
虚函数指针
每一个对象都会有一个虚函数指针,虚函数指针的地址不一样,但是均指向同一个虚函数表。这里要注意,
虚函数指针的创建时间
虚函数指针是在调用构造函数的时候创建完成的。
继承的时候的创建过程
通过分析构造函数的调用顺序来进行理解。
先调用基类的构造函数,创建虚函数指针指向基类的虚函数表
调用派生类的构造函数,虚函数指针指向派生类自身的虚函数表
虚函数表
每一个类最多只有一个虚函数表,在类中如果有虚函数,在编译的时候系统会生成一个虚函数表,存放在只读数据段.rodata。
虚函数指针
每一个对象都会有一个虚函数指针,虚函数指针的地址不一样,但是均指向同一个虚函数表。这里要注意,
虚函数指针的创建时间
虚函数指针是在调用构造函数的时候创建完成的。
继承的时候的创建过程
通过分析构造函数的调用顺序来进行理解。
先调用基类的构造函数,创建虚函数指针指向基类的虚函数表
调用派生类的构造函数,虚函数指针指向派生类自身的虚函数表