Автор: 2pik
Развернуть &epicComment_3066771& { «@context»: «http://schema.org», «@type»: «BlogPosting», «mainEntityOfPage»:{ «@type»:»WebPage», «@id»:»http://Diskworld.reactor.cc/post/3066771″ }, «headline»: «Матушка Ветровоск :: Нянюшка Ягг :: Кот Грибо :: Маграт Чесногк :: Ланкрские ведьмы :: Плоский Мир :: фэндомы», «image»: { «@type»: «ImageObject», «url»: «http://img0.joyreactor.cc/pics/post/full/%D0%9F%D0%BB%D0%BE%D1%81%D0%BA%D0%B8%D0%B9-%D0%9C%D0%B8%D1%80-%D1%84%D1%8D%D0%BD%D0%B4%D0%BE%D0%BC%D1%8B-%D0%9C%D0%B0%D1%82%D1%83%D1%88%D0%BA%D0%B0-%D0%92%D0%B5%D1%82%D1%80%D0%BE%D0%B2%D0%BE%D1%81%D0%BA-%D0%9B%D0%B0%D0%BD%D0%BA%D1%80%D1%81%D0%BA%D0%B8%D0%B5-%D0%B2%D0%B5%D0%B4%D1%8C%D0%BC%D1%8B-3784146.jpeg», «height»: 1920, «width»: 637 }, «datePublished»: «2017-04-14T16:10:26+03:00», «dateModified»: «2017-04-14T16:10:26+03:00», «author»: { «@type»: «Person», «name»: «2pik» }, «publisher»: { «@type»: «Organization», «name»: «JoyReactor.cc», «logo»: { «@type»: «ImageObject», «url»: «http://joyreactor.cc/images/joyreactor_ie6.png», «width»: 207, «height»: 54 } }, «description»: «» }
Комментировать
Пост №3066771
Source: Joyreactor

При проектировании приложений на C++ временами возникает необходимость предоставления доступа к закрытым методам класса другому классу или свободной функции. Для этого в языке C++ есть ключевое слово friend, которое предоставляет полный доступ не только к публичному интерфейсу класса, но и к закрытому, и всем деталям реализации. Таким образом friend работает по принципу «все или ничего» и «все» может быть слишком много. Например, когда есть класс Facade и несколько клиентов Client1, Client2, то может потребоваться предоставить каждому клиенту доступ только к определенному набору методов, причем каждому клиенту к своему набору, не предоставляя доступа к деталям реализации. Для решения такой задачи в C++ есть все возможности. В этой статье я расскажу про две идиомы Attorney-Client и Passkey и как их использовать с нулевыми накладными расходами.
