Pimpl do hermetyzacji kompilacji (C++ nowoczesny)
Pimpl idiom jest nowoczesną techniką C++, aby ukryć implementacji, aby zminimalizować sprzęgu i do oddzielenia interfejsów.Pimpl jest skrótem od "wskaźnik wykonania." Może już być zaznajomieni z koncepcją, ale wiesz o innych nazwach, jak kot Cheshire lub Zapora kompilatora języka.
Do czego służy pimpl?
Oto, jak poprawić języka pimpl cyklu rozwoju oprogramowania:
Zmniejszenie do minimum zależności kompilacji.
Oddzielenie interfejsu i wprowadzania w życie.
Przenoszenia.
Nagłówek Pimpl
// my_class.h
class my_class {
// ... all public and protected stuff goes here ...
private:
class impl; unique_ptr<impl> pimpl; // opaque type here
};
Języka pimpl unika kaskady odbudowywania i układy łamliwe obiektu.Dobrze nadaje się do (przechodni) popularnych typów.
Wdrożenie Pimpl
Definiowanie impl klasy w pliku .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 ...
}
Najważniejsze wskazówki
Należy rozważyć, czy dodać obsługę-wyrzucanie specjalizacji swap.