Как мы все знаем, private объявления де-факто являются частью интерфейса класса, их изменение приводит к перекомпиляции зависящего кода. Кто как обходит проблему? Из того, что я перепробовал:
 — непрозрачные ссылки на forward-объявления структур и функции для работы с ними; 
 — публичная структура, которая агрегируется в класс-реализацию;
 — абстрактный класс, он же «интерфейс», от которого наследуется реализация.
Но у всех них есть свои недостатки. Есть ли какие-то иные приемы, которые я упустил?







