Виртуальный базовый класс должен быть создан самым производным классом; это единственный способ, который имеет смысл, учитывая возможность ромбовидной иерархии.
В вашем случае Prius
создает Car
, используя конструктор по умолчанию. Если вам нужен другой конструктор, вам придется вызывать его явно, как в
Prius(double b) : Car(b), Toyota(b) {}