Содержание
- 2. ИДИОМА RAII — ЗАХВАТ РЕСУРСА ЕСТЬ ИНИЦИАЛИЗАЦИЯ Идиома очень простая и кратко описывается следующим образом: в
- 3. class TelephoneLine { public: void pickUpThePhoneUp() { std::cout } void putThePhoneDown() { std::cout } };
- 4. class TelephoneCall { public: TelephoneCall() { telephoneLine = new TelephoneLine(); telephoneLine->pickUpThePhoneUp(); } ~TelephoneCall() { telephoneLine->putThePhoneDown(); delete
- 5. int main() { { std::cout TelephoneCall call; std::cout } std::cout }
- 6. После запуска мы увидим следующий вывод: Let's make a call to a friend. Line locked Oh,
- 7. PIMPL
- 8. Допустим, нам необходимо написать кроссплатформенное сетевое приложение с использованием сокетов. Для этого нам необходим класс GeneralSocket
- 9. Для того, что бы была возможность изменять реализацию скрываемого класса без перекомпиляции остального кода, так как
- 10. //GeneralSocket.h #include “UnixSocketImpl.h” Class GeneralSocket{ public: connect(); private: UnixSocketImpl socket; } //GeneralSocket.cxx GeneralSocket::connect(){ socket.connectImpl(); }
- 11. //GeneralSocket.h Class UnixSocketImpl; Class GeneralSocket { public: GeneralSocket(); void connect(); private: UnixSocketImpl * socket; } //GeneralSocket.cxx
- 13. Скачать презентацию