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