1.多继承第二基类对虚函数支持的影响
子类继承了几个父类,子类就有几个虚函数表
this指针调整的目的就是让对象指针正确的指向对象首地址,从而能正确的调用对象的成员函数或者说正确确定数据成员的存储位置。
多重继承下,有几种情况,第二个或者后续的基类会对虚函数的支持产生影响,即需要调整this指针
a)通过指向第二个基类的指针调用继承类的虚函数;
b)一个指向派生类的指针,调用第二个基类中的虚函数
c)允许虚函数的返回值类型有所变化
代码:
#include <iostream>
#include <stdio.h>
using namespace std;
class Base
{
public:
virtual void f() { cout << "Base::f()" << endl; }
virtual void g() { cout << "Base::g()" << endl; }
virtual void h() { cout << "Base::h()" << endl; }
virtual ~Base() {
}
virtual Base *clone() const
{
return new Base();
}
};
class Base2