Преимущества использования виртуальных конструкторов в C++:
- Гибкость. 4 Виртуальный конструктор позволяет создавать объекты, тип которых неизвестен на этапе компиляции. 4 Такое решение лучше соответствует идеалам объектно-ориентированного программирования (ООП). 4
- Удобство. 4 Виртуальный конструктор удобнее, чем определять тип объекта через RTTI, а затем создавать нужную копию в switch. 4
Недостатки: в C++ нет прямой поддержки виртуального конструктора. 5 Однако существует идиома, которая имитирует его работу. 5
Виртуальный конструктор в C++ — это скорее паттерн ООП, который ещё называют фабричным методом. 4