Tag: pimpl-idiom
Das Pimpl-idiom, auch bekannt als die Zusammenstellung firewall oder Cheshire-Cat-Technik, ist eine „private Umsetzung“ Technik nützlich in C++ und anderen ähnlichen statisch kompilierte Sprachen.
5
Antworten
Möchte ich pimpl-idiom mit Vererbung. Hier ist die base public-Klasse und deren Implementierung-Klasse: class A { public: A(){pAImpl = new AImpl;}; void foo(){pAImpl->foo();}; private: AImpl* pAImpl; }; class AImpl { public: void foo(){/*do something*/}; }; Und ich
3
Antworten
d-Zeiger Massiv in Qt, Sie sind eine Implementierung des pimpl-idiom. Ich kenne vor-und Nachteile der pimpl-idiom. Aber ich habe verpasst, die Vorteile des d-Zeiger-Implementierung. Hier und hier sind die Proben von d-Zeigern. Ist es nicht einfacher, nur
1
Antworten
PIMPL steht für Pointer zu IMPLementation. Die Umsetzung steht für "detail": etwas, dass der Benutzer der Klasse brauchen nicht besorgt zu sein mit. Qt eine eigene Klasse Implementierungen sauber trennen der Schnittstellen von den Implementierungen, die durch
3
Antworten
Was ist der Vorteil, dass ein kostenloses Funktion (anonymous namespace und nur in einem einzigen source-file) und sendet alle Variablen, die als Parameter im Gegensatz zu einer privaten Klasse member-Funktion frei alle Parameter und der Zugriff auf
11
Antworten
Ich lese das Buch "Exceptional C++" von Herb Sutter, und in diesem Buch habe ich gelernt, über das pImpl-idiom. Grundsätzlich, die Idee ist, erstellen Sie eine Struktur für die private Objekte einer class und dynamisch zugewiesen werden
8
Antworten
Dort wurden ein paar Fragen auf, SO etwa die pimpl-idiomaber ich bin neugierig, wie oft es genutzt wird, in der Praxis. Verstehe ich, gibt es einige trade-offs zwischen performance und Kapselung, plus einige debugging-ärgernisse durch die zusätzliche
4
Antworten
Ich habe einige Objekte mit dem pimpl-idiom, bin mir aber nicht sicher, ob std::shared_ptr oder std::unique_ptr. Ich verstehe, dass std::unique_ptr effizienter ist, aber das ist nicht so sehr ein Problem für mich, da diese Objekte relativ Schwergewicht
2
Antworten
Hier ist eine Vereinfachung von dem, was ich sehe, wenn ich versuche, mit unique_ptr für pimpl. Ich wählte unique_ptr, weil ich wirklich wollen, dass die Klasse, die Eigentümer der Zeiger - ich will das Leben des pimpl-Zeiger,
10
Antworten
Ich Frage mich, was würde ein Programmierer zu wählen, entweder Pimpl-idiom oder rein virtuelle Klassen und Vererbung. Ich verstehe, dass pimpl-idiom kommt mit einer expliziten zusätzlichen Umweg für jede öffentliche Methode und das Objekt der Schöpfung overhead.