Разлика между функцията на приятел и приятелския клас
Съдържание
Функцията Friend и приятелят клас са техниките, използвани за достъп до частните членове на клас чрез използване на ключова дума приятел. Общата разлика между функцията приятел и приятеля клас е, че когато се използва функцията приятел, членовете на частния клас могат да бъдат достъпни, но в приятелски клас, само имената на приятеля клас са достъпни, а не частните членове на класа.
Най- функция за приятел дали се използва от функция или клас може да доведе до отрицателно въздействие върху обектно-ориентираната рамка, тъй като отслабва капсулиране което е против обектно-ориентирана парадигма. Това е причината функцията приятел да се използва разумно, в противен случай би могла почивка на скриване на данни от кода.
Тази функция за приятел не е нито една от двете комутативен и нито преходен, X е приятел на Y, не заключава, че Y също е приятел на X. Ако X е приятел на Y и Y е приятел на Z, не означава, че X е приятел на Z.
-
- Сравнителна диаграма
- дефиниция
- Ключови разлики
- заключение
Сравнителна диаграма
Основа за сравнение | Функция за приятел | Приятелски клас |
---|---|---|
Основен | Това е функция, използвана с приятелска ключова дума, за да се даде достъп на функция, която не е член, на частните членове на даден клас. | Това е клас, използван с ключова дума приятел, за достъп до частните членове на друг клас. |
Препращане на декларация | Трябва да се използва. | Не е задължително. |
употреба | Функция приятел може да се използва в някои ситуации на претоварване на оператора. | Приятелски клас може да се използва, когато клас е създаден в горната част на друг клас. |
Определение на функцията приятел
Най- приятел функция се използва за достъп до частните и защитените членове на даден клас, като позволява на нечленната функция да получи достъп. В този тип функции, ключова дума приятел се използва преди името на функцията в момента на деклариране. Има някои ограничителни условия, приложени към функцията на приятел. Първото условие е функцията приятел да не се наследява от детски клас. Второто условие е, че спецификаторът на клас за съхранение може да не присъства във функцията приятел, което означава, че той не може да бъде деклариран като статичен и външен.
Функцията friend не се извиква с извикващ обект от класа. Примерите за функция приятел са: глобална функция, функция член на клас, шаблон на функция може да бъде функция приятел. Нека го разберем с помощта на пример.
#include Функция приятел е необходима, когато дадена функция трябва да има достъп до два или повече независими класа, вътрешни членове. От друга страна, клас приятел е необходим, когато клас изисква достъп до членовете на друг клас. Когато функцията с няколко члена трябва да бъде приятел на тази функция, в този случай е по-добре да използвате приятел клас.
заключение