Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Das Pimpl-Idiom ist eine moderne C++-Technik zum Ausblenden der Implementierung, zum Minimieren der Kopplung und zum Trennen von Schnittstellen. Pimpl ist kurz für "Zeiger auf Implementierung". Möglicherweise sind Sie bereits mit dem Konzept vertraut, kennen es aber auch durch andere Namen wie Cheshire Cat oder Compiler Firewall idiom.
Warum Pimpl verwenden?
So kann das Pimpl-Idiom den Lebenszyklus der Softwareentwicklung verbessern:
Minimierung der Kompilierungsabhängigkeiten.
Trennung von Schnittstellen und Implementierung.
Übertragbarkeit:
Pimpl-Kopfzeile
// my_class.h
class my_class {
// ... all public and protected stuff goes here ...
private:
class impl; unique_ptr<impl> pimpl; // opaque type here
};
Das Pimpl-Idiom vermeidet die Neuerstellung von Kaskaden und spröden Objektlayouts. Es eignet sich gut für (transitiv) beliebte Typen.
Implementierung von Pimpl
Definieren Sie die impl
Klasse in der .cpp Datei.
// 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 ...
}
Bewährte Methoden
Überlegen Sie, ob Sie Unterstützung für nicht ausgelöste Swap-Spezialisierungen hinzufügen möchten.
Siehe auch
Willkommen zurück bei C++
C++-Programmiersprachenreferenz
C++-Standardbibliothek