Что такое VTT для класса?

Недавно обнаружил новую для меня ошибку компоновщика C ++.

libfoo.so: undefined reference to `VTT for Foo'
libfoo.so: undefined reference to `vtable for Foo'

Я узнал ошибку и исправил свою проблему, но у меня все еще есть назойливый вопрос: что такое VTT?

В сторону: Для тех, кому интересно, проблема возникает, когда вы забываете определить первую виртуальную функцию, объявленную в классе. Таблица vtable входит в блок компиляции первой виртуальной функции класса. Если вы забудете определить эту функцию, вы получите ошибку компоновщика, что он не может найти vtable, а не более удобный для разработчиков не может найти функцию.

29
задан Jarod42 13 December 2015 в 21:13
поделиться