Я прочитал много людей, пишущих "виртуальная таблица существует для класса, в котором объявлена виртуальная функция".
Мой вопрос: существует ли виртуальная таблица только для класса, который имеет виртуальную функцию, или он также существует для классов, полученных из этого класса.
например
class Base{
public:
virtual void print(){cout<<"Base Print\n";}
};
class Derived:public Base{
public:
void print(){cout<<"Derived print\n";}
};
//From main.cpp
Base* b = new Derived;
b->print();
Вопрос: Если бы не было vtable для полученного класса, тогда выход не был бы "производным отпечатком". Таким образом, IMO существует vtable для любого класса с объявленной виртуальной функцией, а также в классах, наследующих от этого класса. Правильно ли это?