Compartir a través de


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.

Vea también

Otros recursos

Bienvenido a C++ (C++ moderno)

Referencia del lenguaje C++

Referencia de la biblioteca estándar de C++