69712

Дружні функції

Лекция

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

Метод як правило використовується для реалізації властивостей об’єкту а у вигляді дружніх функцій оформляються дії не представляючі властивості класу але концептуально що входять в його інтерфейс і потребуючі в доступі до його прихованих полів наприклад перевизначення операції...

Украинкский

2014-10-09

25 KB

2 чел.

Тема 2: Дружні функції

Дружні функції застосовуються для доступу до прихованих полів класу і є альтернативою методам. Метод, як правило, використовується для реалізації властивостей об'єкту, а у вигляді дружніх функцій оформляються дії, не представляючі властивості класу, але концептуально що входять в його інтерфейс і потребуючі в доступі до його прихованих полів, наприклад, перевизначення операції виведення об'єктів. Правила опису і особливості дружніх функцій:

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

2. Дружня функція може бути звичайною функцією або методом другого раніше визначеного класу. На неї не розповсюджується дія специфікаторів доступу, місце розміщення її оголошення в класі байдуже.

Одна функція може бути дружньою відразу декільком класам.

Приклад опису двох функцій, дружніх класу monstr. Функція kill є методом класу hero, а функція steal_ammo не належить жодному класу. Обом функціям як параметр передається посилання на об'єкт класу monstr.

class monstr;     // Попереднє оголошення класу

class hero

{

public: void kill(monstr &);

…..

};

class monstr

{

friend int steal_ammo(monstr &);

friend void hero::kill(monstr &);

// Клас hero повинен бути визначений раніше

};

int steal_ammo(monstr &M){return --M.ammo;}

void hero::kill(monstr &M){M.health = 0: M.ammo = 0;}

Використання дружніх функцій потрібно по можливості уникати, оскільки вони порушують принцип інкапсуляції і, таким чином, утрудняють відладку і модифікацію програми.

Дружній клас

Якщо всі методи якого-небудь класу повинні мати доступ до прихованих полів іншого, весь клас оголошується дружнім за допомогою ключового слова friend. В наведеному прикладі клас mistress оголошується дружнім класу hero:

class hero{

friend class mistress;

}

class mistress{

void fl();

void f2();

}

Функції fl і f2 є дружніми по відношенню до класу hero (хоча і описані без ключового слова friend) і мають доступ до всіх його полів. Оголошення friend не є специфікатором доступу і не успадковується.


 

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

17826. Экономическая роль государства 626 KB
  38 Лекция 8 Тема: Экономическая роль государства Учебная цель лекции: изложить основные положения экономической роли государства в ликвидации последствий отказов рынка дать классификацию провалов государства оказать содействие развитию у ст...
17829. ВВЕДЕНИЕ В ОСНОВЫ БИЗНЕСА 36.06 KB
  Лекция 1 ВВЕДЕНИЕ В ОСНОВЫ БИЗНЕСА План лекции: 1. Понятие бизнес. Предпринимательство и бизнес. 2. Признаки и цель предпринимательской деятельности. 3. Некоторые вопросы начала бизнеса. 4. Принципы предпринимательства. 1. В рамках дисциплины мы буде
17830. ОРГАНИЗАЦИОННО-ПРАВОВЫЕ ФОРМЫ ПРЕДПРИНИМАТЕЛЬСТВА 285.9 KB
  Лекция 2 ОРГАНИЗАЦИОННОПРАВОВЫЕ ФОРМЫ ПРЕДПРИНИМАТЕЛЬСТВА 1. Понятие субъекта хозяйствования 2.Общая характеристика организационноправовых форм. 3.иИндивидуальное и частное предпринимательство. 4.иВиды хозяйственных обществ. 5.Порядок госуда
17831. ОБЪЕДИНЕНИЯ ЮРИДИЧЕСКИХ ЛИЦ - СУБЪЕКТОВ ПРЕДПРИНИМАТЕЛЬСКОЙ ДЕЯТЕЛЬНОСТИ 64 KB
  Лекция 3 ОБЪЕДИНЕНИЯ ЮРИДИЧЕСКИХ ЛИЦ СУБЪЕКТОВ ПРЕДПРИНИМАТЕЛЬСКОЙ ДЕЯТЕЛЬНОСТИ 2 часа 1. Понятие виды и признаки объединений юридических лиц субъектов предпринимательской деятельности. 2 Объединения предприятий. Ассоц...
17832. Лекція 4 БІЗНЕС-ПЛАНУВАННЯ У ПІДПРИЄМНИЦЬКІЙ ДІЯЛЬНОСТІ 139 KB
  Лекція 4 БІЗНЕСПЛАНУВАННЯ У ПІДПРИЄМНИЦЬКІЙ ДІЯЛЬНОСТІ 3 години 1. Сутність та функції бізнесплану 2. Методологія та стадії розробки бізнесплану 3. Структура та логіка розробки бізнесплану 4. Технологія розробки бізнесплану Виробнича...
17833. АНАЛІТИЧНЕ ОЦІНЮВАННЯ ЕФЕКТИВНОСТІ ПІДПРИЄМНИЦЬКОЇ ДІЯЛЬНОСТІ 147 KB
  Лекція 5 АНАЛІТИЧНЕ ОЦІНЮВАННЯ ЕФЕКТИВНОСТІ ПІДПРИЄМНИЦЬКОЇ ДІЯЛЬНОСТІ 1 година Методичні поради до вивчення теми Оцінка результативності підприємницької діяльності є однією з основних функцій управління. Тому цю тему потрібно вважа
17834. Прекращение предпринимательской деятельности 54 KB
  Лекция 6 Прекращение предпринимательской деятельности 1 час План лекции: 1. Основания прекращения предпринимательской деятельности. 2. Формы прекращения предпринимательской деятельности. Реорганизация. Ликвидация. 1. Основания для...