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 не є специфікатором доступу і не успадковується.


 

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

16419. Функции Excel для расчета амортизации АМР, АМГД, ДОБ и ДДОБ 43 KB
  Функции Excel для расчета амортизации АМР АМГД ДОБ и ДДОБ. Под амортизацией подразумевается уменьшение обычно на единицу времени стоимости имущества в процессе эксплуатации. Функция АМР SLN возвращает величину амортизации имущества за один период времени используя ...
16420. Функции Excel для расчета амортизации АПЛ, АСЧ, ФУО и ДДОБ 44 KB
  Функции Excel для расчета амортизации АПЛ АСЧ ФУО и ДДОБ. Под амортизацией подразумевается уменьшение обычно на единицу времени стоимости имущества в процессе эксплуатации. Функция АПЛ SLN возвращает величину амортизации имущества за один период времени используя м...
16421. Функции в Excel 23.88 KB
  Функции в Excel Использование стандартных функций значительно облегчает проведение вычислений в ЭТ После этого урока вы сможете использовать стандартные функции для проведения более сложных вычислений в ЭТ. В поставку EXCEL 2007 входит более 400 функций. Используя VBA м
16422. Правовое регулирование порядка обеспечения коммерческой тайны при заключении хозяйственных договоров 49.35 KB
  В условиях рынка является не только оправданной, но и актуальной ориентация юридических и физических лиц на их особую ответственность за передачу деловым партнерам или их представителям экономических, научно-технических и других сведений, составляющих коммерческую тайну
16423. СОЗДАНИЕ МАКРОСОВ-ФУНКЦИЙ В EXCEL 162.5 KB
  СОЗДАНИЕ МАКРОСОВФУНКЦИЙ В EXCEL Методические указания к выполнению лабораторных работ по дисциплине Информационные технологии для студентов технических специальностей Методические указания предназначены для проведения лабораторных работ по дисциплине Инфо
16424. Логические функции в EXCEL 81 KB
  Лабораторная работа Логические функции в EXCEL Задание 1. Создайте таблицу следующего вида: Средний балл рассчитывается по формуле СЗНАЧ. Результат 1: Если средний балл больше 60 то студент сдал сессию в противном случае не сдал. Расчет производится с помощь...
16425. Функции Excel. Логические функции 122.5 KB
  Лабораторная работа № 6Функции Excel. Логические функции Цель работы: изучение понятия и видов логических функций в Excel и приобретение навыков работы с логическими функциями Программа работы Ознакомление с понятием логических функций и их видами. Приобретение
16426. Использование функции ЕСЛИ в формулах Excel 106 KB
  Лабораторная работа №2 Использование функции ЕСЛИ в формулах Excel Представьте себе что вам необходимо заполнить колонку на рабочем листе разными данными которые зависят от значений другой колонки. Для того чтобы результат формулы выводился в зависимости от выполнени...
16427. Использование логических, статистических и математических функций 113 KB
  Лабораторная работа 2 Использование логических статистических и математических функций Цель работы: Изучить возможности использования встроенных функций табличного процессора Excel; получить навыки работы с Мастером функций. Структура отчета: Титульны