IT-словарь › Программирование › PIMPL

PIMPL

Программирование Svenska → Обновлено: 2026-10-18

Приём, при котором все закрытые члены класса прячутся за указателем на тип, объявленный в заголовке и определённый в исходном файле. Также известен как «брандмауэр компиляции».

Исчезают две проблемы. Первая — время сборки: обычно при изменении закрытого члена приходится перекомпилировать все файлы, подключающие класс, хотя они до него не дотягиваются, да и заголовок вынужден тянуть заголовки всех типов-членов. Вторая — стабильность ABI, ради которой приём и любят авторы библиотек: размер объекта не меняется вместе с его внутренностями, и скомпилированная программа продолжает работать с новой версией библиотеки.

Цена — выделение в куче на каждый объект и косвенность при каждом обращении. Ловушка, в которую попадал каждый хотя бы раз: деструктор нужно объявить в заголовке, а определить в исходнике, иначе deleter у unique_ptr будет инстанцирован для неполного типа.

← Назад к словарю