Мне задали этот вопрос сегодня! (это было действительно неудобное телефонное интервью..):
В чем разница между vtable для класса с виртуальным функции и класс с чистыми виртуальными функциями?
Теперь я знаю, что стандарт С++ не указывает ничего о vtables или даже о существовании v-таблицы. Но теоретически говоря, какой будет ответ?
Я выпалил, что класс с чистой виртуальной функцией может иметь vtable, а элемент vtable для чистой виртуальной функции указывает на реализацию производного класса. Правильно ли это предположение? Я не получил положительного ответа от интервьюера.
Будет ли гипотетический компилятор создавать vtable для класса с только чистыми виртуальными функциями? Что делать, если класс содержит чистые виртуальные функции с определениями? (как показано на рисунке: http://www.gotw.ca/gotw/031.htm).