Как можно использовать конструктор абстрактного базового класса для чего-либо?
Предположим, у вас есть абстрактный базовый класс B и производный класс D. Когда создается объект типа D, сначала вызывается конструктор B, но в этот момент объект "is" по-прежнему имеет тип B (см. here ) - в частности, вызов любых виртуальных функций из тела конструктора B вызовет собственных реализаций B этих функций. Но если B является чисто абстрактным классом, ни одна из этих виртуальных функций не определена, поэтому программа немедленно завершит работу.
Я предполагаю, что вы хотели, чтобы конструктор B вызывал реализацию виртуальной функции самого производного класса (например, D), верно? В целом это было бы плохой идеей, поскольку объект D еще не полностью сконструирован, поэтому любой доступ к переменным-членам в D изнутри реализации виртуальной функции D мог бы получить доступ к неинициализированной памяти.