Compartir a través de


Pimpl para encapsulación en 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.

Vea también

Otros recursos

Aquí está otra vez C++ (C++ moderno)

Referencia de lenguaje C++

Referencia de biblioteca estándar de C++