Pimpl para la encapsulación de tiempo de compilación (C++ moderno)
La modismo de pimpl es una técnica moderna de C++ para ocultar la implementación, para minimizar el acoplamiento, y de separar interfaces.Pimpl es corto para “puntero a la implementación.” Puede estar familiarizado con el concepto pero conocerlo ya por otros nombres como la modismo de Firewall Cat o del compilador de Cheshire.
¿Por qué pimpl de uso?
Aquí es cómo la modismo de pimpl puede mejorar el ciclo de vida de desarrollo de software:
Minimización de las dependencias de compilación.
Separación de interfaz y de implementación.
Portabilidad.
Encabezado de Pimpl
// my_class.h
class my_class {
// ... all public and protected stuff goes here ...
private:
class impl; unique_ptr<impl> pimpl; // opaque type here
};
El idioma de pimpl evita recompilar las cascadas y diseños precisos del objeto.Es apropiado para (transitivo) los tipos populares.
Implementación de Pimpl
Defina la clase de impl en el archivo .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 ...
}
Procedimientos recomendados
Considere si agregar compatibilidad para la especialización de intercambio no que produce.