虚函数表,指针vptr

虚函数表,指针vptr_第1张图片

摘自:http://www.cnblogs.com/demon90s/p/4661722.html

虚函数,通俗讲就是基类和派生类之间的同名函数的时候,声明为虚函数。多态的时候用到。
当用基类指针指向派生类对象的时候,基类指针调用虚函数的时候会自动调用派生类的虚函数,这就是多态性,也叫动态编联。

虚继承,派生类生成一个指向基类的虚函数表的指针
如果不是虚继承的类,即便有虚函数也不会因此增加存储空间,如果是虚继承的类,没有虚函数就添加一个虚指针空间,有虚函数不论多少个,就添加两个虚指针空间。
摘自:C++ 深入理解 虚继承、多重继承和直接继承

抽象类就是那些不能够实例化出对象的类。抽象类的唯一目的就是让其派生类继承并实现它的接口方法,因此它通常也被称为抽象基类。
抽象基类由纯虚函数组成。

动态绑定,指向派生类对象的基类指针或者引用,调用函数时会选择派生类的同名函数,而不是基类同名函数。这个过程发生在程序运行的时候,这种特性称为运行时绑定(或动态绑定、晚绑定)。

虚函数表,指针vptr_第2张图片
多重继承
虚函数表,指针vptr_第3张图片
虚函数和多态

你可能感兴趣的:(虚函数表,指针vptr)