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