19826

Організація зовнішнього доступу до локальних компонентів класу (специфікатор friend)

Доклад

Информатика, кибернетика и программирование

Організація зовнішнього доступу до локальних компонентів класу специфікатор friend. Технологія об'єктноорієнтованого програмування дає змогу організувати до ступ до закритих членів класу функціями які не є його членами. Для цього дос татньо оголосити ці функції др...

Украинкский

2013-07-17

23.5 KB

1 чел.

Організація зовнішнього доступу до локальних компонентів класу (специфікатор friend).

Технологія об'єктно-орієнтованого програмування дає змогу організувати до-

ступ до закритих членів класу функціями, які не є його членами. Для цього дос-

татньо оголосити ці функції дружніми до цього класу. Щоб зробити функцію

"другом" класу, потрібно помістити її прототип в public-розділ оголошення класу і

попередити його ключовим словом friend. Існують пе-

вні обставини, при яких статус "дружньої" функції класу має велике значення. По-перше, функції-"друзі" є корисними для перевизначення операторів певних типів.

По-друге, функції-"друзі" спрощують створення деяких функцій введення-виве-

дення. Усі ці питання розглядатимемо згодом у цьому навчальному посібнику.

Третя причина частого використання функцій-"друзів" полягає у тому, що в

деяких випадках два (або більше) класи можуть містити члени, які перебувають у

взаємному зв'язку з іншими частинами програми. Наприклад, у нас є два різні кла-

си, які під час виникнення певних подій відображають на екрані "спливаючі" повідомлення.

Інші частини програми, які призначені для виведення даних на екран,

повинні знати, чи є "спливаюче" повідомлення активним, щоб випадково не пере-

записати його. Для уникнення цього у кожному класі можна створити функцію-

члена, що повертає значення, за якою робляться висновки про те, є повідомлення

активним чи ні. Однак перевірка цієї умови вимагатиме додаткових витрат (тобтодвох викликів функцій замість одного). Якщо статус "спливаючого" повідомлення

необхідно перевіряти часто, то ці додаткові витрати можуть виявитися відчутни-

ми. Проте за допомогою функції, "дружньої" для обох класів, можна безпосе-

редньо перевіряти статус кожного об'єкта, викликаючи для цього тільки одну і ту саму функцію, яка матиме доступ до обох класів. У таких ситуаціях "дружня" функція класу дає змогу написати більш ефективний програмний код. 


 

А также другие работы, которые могут Вас заинтересовать

30726. Ялтинская и Потсдамская конференции глав правительств СССР, США и Великобритании. (1945) 22.5 KB
  Участвовали: Сталин СССР Черчилль Великобритания Рузвельт США. Основные решения: 1 Германия делилась на 4 оккупационные зоны СССР Франция Англия США. 3 Согласия СССР вступить в войну с Японией через 3 месяца после капитуляции Германии.
30727. Кризис неолиберализма в США. Переход к неконсервативной модели развития ГМК 26 KB
  Главный замысел неолиберализма – снижение регулирующей роли государства в экономике При общем экономическом подъеме неолиберальный курс обусловил неустойчивость и нестабильность развития США Причиной экономического роста в США стали специфические внутренние и внешние факторы конца ХХ в. Экономическое развитие США последнего десятилетия окончательно подтверждает: неолиберальная перестройка – это путь к строительству эффективной капиталистической экономики. Неолиберальный режим вызвал крайне нестабильный экономический рост в США в 90е...
30728. Политика «невмешательства» (1935 – 1937 гг.). Мюнхенское соглашение 1938 г. и его значение для судеб мира 24.5 KB
  СССР готово было прийти на помощь Чехословакии в 1935 г у СССР и Чехословакии был договор о взаимопомощи при поддержке Франции у которой с СССР был такой же договор. Но французское правительство не поддержало СССР т. Попытки англофранцузской дипломатии умиротворить нацистов без участи СССР оказались тщетными и тогда Англия и Франция вынуждены были предоставить гарантии безопасности возможным жертвам агрессии – Польше Румынии Греции и начали секретные переговоры с Советским союзом. провалились изза недоверия...
30729. Внутренняя политика британских консерваторов в 1930-е гг 23 KB
  Консерваторы – выдвигали идею отказа от свободной торговли и перехода к политике протекционизма поддержка национальной экономики и защита от иностранных конкурентов требовали активизаций колониальной политики беспомощного подавления национальноосвободительного движения ирландского народа. В период утверждения капитализма на Западе консерваторы противостояли либерализму и социализму они то приходили к власти то теряли ее. Консерваторы же упорно настаивали на своих методах регулирования экономики основываясь на рыночных отношениях и в...
30730. Причины, основные этапы и итоги гражданской войны в Испании (1936 – 1939) 25.5 KB
  в Испании на всеобщих выборах побеждают левые силы – партия Народный фронт республиканцы коммунисты которые возобновили аграрную реформу амнистируют политических заключенных поощряют требования забастовщиков снижение налогов и т. испанские войска в Марокко колония Испании под командованием генерала Франко против республики Народного Фронта. мятеж с колонии перекидывается на территорию Испании Франко поддерживают сухопутные войска.
30731. Причины и характер второй мировой войны. (1 сентября 1939 — 2 сентября 1945) 23 KB
  Возникли два очага войны – на Дальнем Востоке и в Европе. Главной причиной войны было стремление агрессивных государств – Германии Италии и Японии осуществить передел мира ликвидировать демократические режимы захватить колонии в Азии и Африке – т. Итоги войны: катастрофическая масштабная продолжительная разрушительная и кровопролитная.
30732. Цивилизационный и формационный подход к изучению курса новейшей истории: общее и особенное 25 KB
  Выделяют 2 подхода изучения: 1 цивилизационный; 2 формационный. Формационный подход утверждает что все народы Земли развивались по одинаковым законам и проходили проходят 5 общественноэкономических формаций ОЭФ – тип общества основанный на определенном способе производства. Цивилизационный подход позволяет рассматривать исторический процесс в динамике учитывая и факторы объективного социальноэкономического уровня развития общества и факторы личности и особенности этнической ментальности и состояние...
30733. Карибский кризис 1962 г. причины, уроки и значение 22.5 KB
  на Кубе победила революция США не хотели с этим смириться и всячески пытались подавить ее. США узнает об этом требует убрать их и объявляет морскую блокаду Кубы. Назревает военный конфликт между СССР и США мир стоял на грани мировой термоядерной войны. США и СССР начинают переговоры и СССР соглашается убрать ракеты при условии что США не будет совершать агрессию против Кубы и признает ее неприкосновенность.
30734. Аппарат насилия в нацистской Германии 24 KB
  Появляются такие аппараты насилия как тайная государственная полиция – гестапо входила в состав Министерства внутренних дел Германии. СС были основным организатором террора и уничтожения людей по расовым признакам политическим убеждениям и государственной принадлежности как в Германии так и на оккупированных территориях. Аппарат насилия в нацистской Германии вел преследование инакомыслящих недовольных и противников фашистского режима.