Pimpl pro zapouzdření kompilace (moderní C++)
Pimpl stylu je moderní techniky C++ skrýt implementaci minimalizovat spojovacího zařízení a k oddělení rozhraní.Pimpl je zkratka pro "ukazatel na implementaci." Může již být obeznámeni s koncept, ale znáte jiné názvy jako Cheshiru kočka nebo brány Firewall kompilátoru stylu.
Proč používat pimpl?
Zde je, jak zlepšit životní cyklus vývoje softwaru stylu pimpl:
Minimalizaci závislosti při kompilaci.
Oddělení rozhraní a implementace.
Přenositelnost.
Záhlaví Pimpl
// my_class.h
class my_class {
// ... all public and protected stuff goes here ...
private:
class impl; unique_ptr<impl> pimpl; // opaque type here
};
Pimpl stylu je zabráněno cascades znovu sestavit a křehká objekt rozložení.Je vhodný pro (přechodně) oblíbených typů.
Provádění Pimpl
Definovat impl třídy v souboru .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 ...
}
Doporučené postupy
Zvažte, zda chcete přidat podporu pro-vyvolání odkládací specializace.