Різниця між функцією друга та класом друзів
Зміст
Функція Friend та клас друзів - це методи, що використовуються для доступу до приватних членів класу за допомогою ключового слова friend. Загальна відмінність функції "друг" від "товаришів" - це те, що при використанні функції "друзів" доступ до членів приватного класу можна отримати, але в другому класі доступ до лише імен класу "друг" - не приватних членів класу.
The особливість друга незалежно від того, використовується функція або клас, може негативно впливати на об'єктно-орієнтовану структуру, оскільки вона послаблює інкапсуляція що проти об’єктно-орієнтований парадигма. Це є причиною того, що функцію друзів потрібно використовувати розумно, інакше вона могла б перерва то приховування даних коду.
Ця функція друга - ні комутативний і ні перехідний. X є другом Y не означає, що Y також є другом X. Якщо X є другом Y, а Y є другом Z, це не означає, що X є другом Z.
-
- Порівняльна діаграма
- Визначення
- Ключові відмінності
- Висновок
Порівняльна діаграма
Основа для порівняння | Друг Функція | Клас друзів |
---|---|---|
Основні | Це функція, що використовується з ключовим словом друга, щоб надати доступ до приватних членів класу не членам. | Це клас, який використовується з ключовим словом друга для доступу до приватних членів іншого класу. |
Переадресація декларації | Потрібно використовувати. | Не обов'язково. |
Використовуйте | Функція friend може використовуватися в деяких випадках перевантаження оператора. | Клас друзів можна використовувати, коли клас створюється вгорі іншого класу. |
Визначення функції друга
The функція друга використовується для доступу до приватних та захищених членів класу, дозволяючи функції, що не є членом, отримати доступ. У цьому типі функції ключове слово friend використовується перед ім'ям функції під час оголошення. Існують деякі обмежувальні умови, застосовані до функції друга. Перша умова - функція друга не успадковується дочірнім класом. Друга умова полягає в тому, що специфікатор класу зберігання може бути відсутнім у функції друзів, а це означає, що він не може бути оголошений статичним і зовнішнім.
Функція friend не викликається об'єктом виклику класу. Прикладами функції друзів є: глобальна функція, функція члена класу, шаблон функції може бути функцією друга. Давайте зрозуміємо це за допомогою прикладу.
#включати Функція friend потрібна, коли функції потрібно отримати доступ до двох або більше незалежних класів, внутрішніх членів. З іншого боку, клас друзів потрібен, коли клас вимагає доступу до членів іншого класу. Коли функція з декількома членами повинна бути другом цієї функції, в цьому випадку краще використовувати клас друзів.
Висновок