Frage

Gibt es eine Möglichkeit private Daten Mitglieder einer C ++ Klasse zu verstecken weg von seinen Nutzern, in der CPP-Datei? Ich denke an den privaten Mitglieder als Teil der Umsetzung, und es scheint ein wenig nach hinten, sie in der Header-Datei zu erklären.

War es hilfreich?

Lösung

Das "Pimpl" Idiom ist, wie dies in der Regel behandelt wird.

Siehe

Andere Tipps

Sie wollen so etwas wie das PIMPL Idiom verwenden

http://en.wikipedia.org/wiki/Opaque_pointer

Der klassische Weg, dies zu tun, ist mit einem Proxy-Zeiger auf eine interne Klasse, die die Funktionalität implementiert. Es gibt keine Möglichkeit, Teilklassendefinitionen in C ++ zu tun, die ich kenne.

Kommerziell? ;)

Sie können Header-Dateien erstellen, in dem Sie nur die Öffentlichkeit erklären und geschützt API.

Der Benutzer wird nur mit diesen vorgestellt, die sie enthalten. Sie verbinden ihren Code mit einer Bibliothek, die Sie die komplette API und die Definitionen gebaut werden.

Für inlined Funktionen: sicherstellen, dass sie in nicht-Inline-Code verwendet werden, dann wird es eine Definition zur Verfügung steht in der Bibliothek (ich bin nicht sicher, dass es in dem Benutzer Implemenation inlined werden, jedoch)

.

Für Templat-Code gibt es keinen wirklichen Weg, um. Eine halbherzige Lösung ist, um Code zu machen, die den Templat-Code verwendet, um mit verschiedenen Objekttypen. Der Benutzer wird auf diese beschränkt sein, weil sie die einzigen Definitionen in Ihrer Bibliothek sind.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top