Разница между функцией друга и классом друга
Содержание
Функция Friend и класс Friend - это методы, используемые для доступа к закрытым членам класса с помощью ключевого слова friend. Общее различие между функцией-другом и классом-другом заключается в том, что при использовании функции-друга можно получить доступ к частным членам класса, но в классе-другом доступны только имена класса-друга, а не частные члены класса.
функция друга использование функции или класса может оказать негативное влияние на объектно-ориентированную структуру, поскольку это ослабляет инкапсуляция который против объектно-ориентированный парадигма. Это причина, по которой функция друга должна использоваться с умом, иначе она может перемена сокрытие данных кода.
Эта функция друга не является ни коммутативной и ни переходный, X - друг Y, не означает, что Y - также друг X. Если X - друг Y, а Y - друг Z, это не означает, что X - друг Z.
-
- Сравнительная таблица
- Определение
- Ключевые отличия
- Вывод
Сравнительная таблица
Основа для сравнения | Функция друга | Друг класс |
---|---|---|
основной | Это функция, используемая с ключевым словом friend для предоставления доступа к частным членам класса, не являющимся членами функции. | Это класс, используемый с ключевым словом friend для доступа к закрытым членам другого класса. |
Форвардная декларация | Необходимо использовать. | Не обязательно. |
использование | Другую функцию можно использовать в некоторых ситуациях перегрузки оператора. | Класс друга может использоваться, когда класс создается поверх другого класса. |
Определение функции друга
функция друга используется для доступа к закрытым и защищенным членам класса, позволяя функции, не являющейся членом, получить доступ. В этом типе функции ключевое слово friend используется перед именем функции во время объявления. Есть некоторые ограничительные условия, применяемые к функции друга. Первое условие - функция друга не наследуется дочерним классом. Второе условие заключается в том, что спецификатор класса хранения может отсутствовать в функции Friend, что означает, что он не может быть объявлен как static и extern.
Функция Friend не вызывается с вызывающим объектом класса. Примеры функции-друга: глобальная функция, функция-член класса, шаблон функции может быть функцией-другом. Давайте разберемся с помощью примера.
#включают Функция Friend требуется, когда функции требуется доступ к двум или более независимым классам, внутренним членам. С другой стороны, класс друга необходим, когда класс требует доступа к членам другого класса. Когда функция-член должна быть другом этой функции, в этом случае лучше использовать класс друга.
Заключение