Мне было интересно, что сделает программист выбрать либо идиому Pimpl, либо чистый виртуальный класс и наследование.
Я понимаю, что идиома pimpl содержит одну явную дополнительную косвенность для каждого публичного метода и служебные данные создания объекта.
Виртуальный класс Pure с другой стороны имеет скрытую косвенность (vtable) для наследующей реализации, и я понимаю, что никаких накладных расходов нет.
EDIT. Но вам понадобится factory, если вы создадите объект извне
Что делает чистый виртуальный класс менее желательным, чем идиома pimpl?