Пожалуйста, создайте vptr и vtable для кода ниже. и объясните, почему, если мы ссылаемся на объект базового класса с производным классом, это вызывает вызов базового класса fun;
#include<iostream>
using namespace std;
class b {
public:
b() {
cout<<"Constructing base \n";
}
virtual void f1()
{
cout<<"I am base Virtual f1"<<endl;
}
virtual void f2()
{
cout<<"I am base Virtual f2"<<endl;
}
void f3()
{
cout<<"I am in base f3"<<endl;
}
};
class d: public b {
public:
d() {
cout<<"Constructing derived \n";
}
virtual void f1()
{
cout<<"I am derived virtual f1"<<endl;
}
void f2()
{
cout<<"I am derived f2"<<endl;
}
virtual void f3()
{
cout<<"I am in derived f3"<<endl;
}
};
int main(void) {
b *ptr= new d;
ptr->f3();
}