Udostępnij za pośrednictwem


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.

Zobacz też

Inne zasoby

Nowoczesne C++ Programming Guide

Skorowidz języka C++

Biblioteka języka C++ wzorcowego