Pimpl для инкапсуляции время компиляции (самомоднейшего C++)
Эта pimpl современный метод C, C-++, чтобы скрывать реализацией, свернуть соединение и разделять интерфейсы.Pimpl коротким "для указателя на реализацию". Можно быть уже знакомы с понятием только знать его различными именами, является брандмауэра котов или Чешира компилятора.
Зачем использовать pimpl?
Описание является pimpl может повысить жизненного цикла разработки программного обеспечения.
Минимизация зависимостей компиляции.
Разделение и реализации интерфейса.
Переносимость.
Заголовок Pimpl
// my_class.h
class my_class {
// ... all public and protected stuff goes here ...
private:
class impl; unique_ptr<impl> pimpl; // opaque type here
};
Эта pimpl избежать каскадов перестроения и хрупких макетов объекта.Он хорошо подходит для () является транзитивным популярных типов.
Реализация Pimpl
Определите класс impl в cpp-файле.
// my_class.cpp
class my_class::impl { // defined privately here
// ... all private data and functions: all of these
// can now change without recompiling callers ...
};
my_class::my_class(): pimpl( new impl )
{
// ... set impl values ...
}
Рекомендации
Возможно, добавление поддержки не функцию специализации обмена.