Являются ли виртуальные таблицы частью стандарта C++?

Я читаю о реализации полиморфизма позднего связывания в C++ и узнал о виртуальных таблицах и виртуальных указателях.

Затем я искал стандарт C++ ( ISO / IEC 14882: 2011), чтобы получить больше информации о том, как это поведение должно быть реализовано.

К сожалению, я не нашел ничего значимого в этом широком стандарте, кроме определения Виртуальных функций в §10.3, поэтому я предполагаю концепцию __vptr используется GCC, но может быть реализован по-другому.

Есть ли стандарт или документ, в котором описывается, как виртуальные методы должны быть реализованы?

1 ответ

Решение

Нет, они не определены стандартом. Вместо этого они представляют собой концепции реализации, скорее как стек или куча.

Стандарт помогает разрешить реализацию полиморфизма определенным образом, например, адрес первой переменной-члена class не обязательно должен быть адресом экземпляра этого класса, если этот класс является полиморфным типом.

Другие вопросы по тегам