Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A pimpl idiom egy modern C++ technika, amely elrejti a megvalósítást, minimalizálja a csatolást, és elkülöníti a interfészeket. A Pimpl az "implementációra mutató mutató" rövidítése. Lehet, hogy már ismeri a fogalmat, de más elnevezései, mint a Cheshire Cat vagy a Compiler Firewall idiomák alatt.
Miért használjunk pimpl-t?
A pimpl idiom javíthatja a szoftverfejlesztési életciklust:
Fordítási függőségek minimalizálása.
Az interfész és a megvalósítás elkülönítése.
Hordozhatóság.
Pimpl fejléc
// my_class.h
class my_class {
// ... all public and protected stuff goes here ...
private:
class impl; unique_ptr<impl> pimpl; // opaque type here
};
A pimpl idiom elkerüli a kaszkádok és a törékeny objektumelrendezések újraépítését. Jól használható (tranzitív) népszerű típusokhoz.
A Pimpl implementálása
Adja meg az osztályt impl
a .cpp fájlban.
// 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 ...
}
Ajánlott eljárások
Fontolja meg, hogy támogatja-e a nem dobó swap specializációt.
Lásd még
Üdvözöljük újra a C++-ban
C++ nyelvi referencia
C++ standard kódtár