В C ++ нет виртуальных конструкторов, хотя можно моделировать поведение .
Почему в C ++ нет виртуальных конструкторов?
Моя попытка дать Обоснование:
Стандарт гласит, что создание объекта не завершено до закрывающей скобки конструктора.Таким образом, объект существует только после завершения конструктора.
Виртуальное ключевое слово используется для реализации полиморфного поведения, где в действительности вызываемая функция оценивается во время выполнения, в зависимости от фактического типа объекта, на который указывает this
.Для того чтобы конструктор отправлялся с использованием механизма виртуальной таблицы, должен существовать полностью существующий объект с указателем на виртуальную таблицу, но внутри конструктора само построение объекта не завершено, так как указатель на виртуальную таблицу может бытьсуществует, если объект не полностью сформирован?
Рассуждения доктора Бьярна Страуструпа:
Почему у нас нет виртуальных конструкторов?