Sdílet prostřednictvím


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.

Viz také

Další zdroje

Moderní Příručka programování v jazyce C++

C++ jazyková Reference

Referenční Standardní knihovna C++