Мой вопрос со ссылкой на этот вопрос , который объясняет, как работают виртуальные функции в случае нарезки объектов, которые в конечном итоге вызывают виртуальную функцию базового класса, и статья Википедии , которая объясняет виртуальную таблицумакет для производного класса для кода ниже
class A{
public:
virtual void func(){ cout<<"\n In A:func";}
};
class B:public A{
public:
virtual void func(){ cout<<"\n In B:func";}
};
main(){
A *ptr1 = new B();
A oA = *ptr1;
oA.func();
}
DerviedClassObjectB:
+0: pointer to virtual method table of B
virtual method table of B:
+0: B::func
Над программой выводится "In A :: func".
Но как обходится без виртуальной таблицы для класса B, зная о базовом классе A :: func, в итоге вызывая A :: func