Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La expresión pimpl es una técnica moderna de C++ para ocultar la implementación, minimizar el acoplamiento y separar interfaces. Pimpl es la abreviatura de "puntero a la implementación". Es posible que ya esté familiarizado con el concepto, pero que lo conozca por otros nombres como expresión Cheshire Cat o Compiler Firewall.
¿Por qué usar pimpl?
Así es como la expresión pimpl puede mejorar el ciclo de vida de desarrollo de software:
Minimización de dependencias de compilación.
Separación de la interfaz y la 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
};
La expresión pimpl evita las cascadas de recompilación y los diseños de objetos frágiles. Es adecuado para tipos conocidos (transitivamente).
Implementación de pimpl
Defina la clase 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 debe agregar compatibilidad con la especialización de intercambio que no produce excepciones.
Consulte también
Aquí está otra vez C++
Referencia del lenguaje C++
Biblioteca estándar de C++