19826

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

Доклад

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

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

Украинкский

2013-07-17

23.5 KB

1 чел.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


 

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

16559. Структурирование и отбор данных в MS Excel’2000/200 131.5 KB
  Лабораторная работа № 13 Тема: Структурирование и отбор данных в MS Excel2000/2003. Цели работы: Освоить структуризацию данных и основные операции по работе со списком в MS Excel2000/2003. Содержание работы: Оформить список в таблице MS Excel2000/2003. Осуществить операции с записями...
16560. Подведение итогов и отчетов по данным в ЭТ MS Excel 130.5 KB
  Лабораторная работа № 14 Тема: Подведение итогов и отчетов по данным в ЭТ MS Excel. Цели работы: Освоить применение основных команд по подведению итогов и составлению отчетов при работе со списком в MS Excel2000/2003. Содержание работы: Подведения итогов в списке используя н
16561. Изучение основ технологического применения озона 171.5 KB
  Лабораторная работа № 1 Изучение основ технологического применения озона Цель работы Ознакомление с распространенными схемами технологического применения озона; Исследование выходных характеристик генератора озона; Изучение процесса растворения аб...
16562. Исследование работы барьерного озонатора 154 KB
  Лабораторная работа № 2 Исследование работы барьерного озонатора 1. Цель работы Ознакомление с конструкцией барьерного озонатора принципом его работы и выходными параметрами. Исследование режимов работы барьерного озонатора определение концентрации о...
16563. Магнитно-импульсная обработка металлов 82 KB
  Лабораторная работа № 3 Магнитноимпульсная обработка металлов 1. Цель работы Ознакомление с принципом деформирования проводящих заготовок в импульсном магнитном поле с узлами и элементами установок для магнитноимпульсной обработки металлов а также ознако...
16564. Нанесение порошковых полимерных покрытий в камерах с электрическим кипящим слоем 66.5 KB
  Лабораторная работа № 4 Нанесение порошковых полимерных покрытий в камерах с электрическим кипящим слоем 1. Цель работы Ознакомление с технологией и устройствами для нанесения порошковых полимерных покрытий в электрическом поле. Изучение процесса нанесения ...
16565. Электросепарация 104.5 KB
  Лабораторная работа № 5 Электросепарация 1. Цель работы Изучение принципа работы электростатического сепаратораразделяющего материалы по проводимости. Экспериментальное изучение процесса электросепарации напримере конструкции наклонного пластин
16566. Исследование работы электрофильтра 135.5 KB
  Лабораторная работа № 6 Исследование работы электрофильтра 1. Цель работы Изучение принципа работы электрофильтра. Экспериментальное определение степени очистки воздуха от частиц аэрозоля. Ознакомление с конструкцией малогабаритного электрофильтра. ...
16567. Исследование работы нейтрализаторов статического электричества 67 KB
  Лабораторная работа № 7 Исследование работы нейтрализаторов статического электричества 1. Цель работы Экспериментальное определение эффективности работы пассивных индукционных и активных высоковольтных нейтрализаторов статического электричества. ...