Share via


Pimpl pour l'encapsulation de compilation C++ (moderne)

L'idiome de pimpl est une technique moderne C++ pour masquer l'implémentation, de réduire le couplage, et de séparer des interfaces.Pimpl est abréviation « pointeur vers l'implémentation. » Vous pouvez déjà familiarisé avec le concept mais le connaître par d'autres noms comme Cheshire Cat ou idiome de pare-feu de compilateur.

Pourquoi pimpl d'aide ?

Voici comment l'idiome de pimpl peut améliorer le cycle de vie de développement de logiciels :

  • Minimisation des dépendances de compilation.

  • Séparation d'interface et d'implémentation.

  • Portabilité.

En-tête 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
};

L'idiome de pimpl évite des cascades de reconstruction et des dispositions fragiles d'objet.Elle est parfaitement pour (transitif) les types populaires.

Implémentation de Pimpl

Définissez la classe d' impl dans le fichier.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 ... 
}

Méthodes conseillées

Déterminez si ajouter la prise en charge de la spécialisation non se levante de pagination.

Voir aussi

Autres ressources

Accueil vers C++ (C++ moderne)

Guide de référence du langage C++

Référence de la bibliothèque C++ standard