Наверное, лучшее, что вы можете сделать, это рефакторинг. Не имеет смысла, чтобы базовый класс зависел от одного из его производных типов.
Я видел, как это делалось раньше, что доставляло разработчикам немало хлопот: расширить класс ACE_Task, чтобы обеспечить периодический поток, который можно расширить с помощью конкретной функциональности, и активировать поток из конструктора периодических потоков только для того, чтобы выяснить, что в то время как в тестирование и чаще всего это работало, но в некоторых ситуациях поток фактически начинался до инициализации самого производного объекта.
Наследование - это прочные отношения, которые следует использовать только при необходимости. Если вы посмотрите на библиотеку потоков потоков (только документы, не нужно вдаваться в подробности) или библиотеку POCO, вы увидите, что они разбили проблему на две части: классы потоков контролируют выполнение потоков и вызывают переданный метод для них в конструкции: управление потоком отделено от фактического кода, который будет выполняться, и тот факт, что код, который должен быть выполнен, получен в качестве аргумента для конструктора, гарантирует, что он был создан до вызова конструктора потока.
Может быть, вы могли бы использовать тот же подход в вашем собственном коде. Разделите функциональность на две части: независимо от того, что сейчас делает производный класс, его следует переместить за пределы иерархии (boost использует функторы, POCO использует интерфейсы, используйте то, что вам больше всего подходит). Без лучшего описания того, что вы пытаетесь сделать, я не могу вдаваться в подробности.
Еще одна вещь, которую вы можете попробовать (это хрупко, и я бы рекомендовал против) разбить класс B на класс C, который не зависит от A, и класс B, который наследует от обоих, сначала от C, а затем от A (с HUGE предупреждающие комментарии там). Это гарантирует, что C будет создан до A. Затем сделайте подобъект C аргументом A (через интерфейс или как шаблонный аргумент). Вероятно, это будет самый быстрый взлом, но не самый удачный. Как только вы захотите изменить код, просто сделайте это правильно.