Разлика између функције пријатеља и класе пријатеља

Аутор: Laura McKinney
Датум Стварања: 1 Април 2021
Ажурирати Датум: 17 Може 2024
Anonim
C++ Tutorial 18: Prijateljske funkcije
Видео: C++ Tutorial 18: Prijateljske funkcije

Садржај


Функција Фриенд и класа пријатеља су технике које се користе за приступ приватним члановима класе помоћу кључне речи фриенд. Уобичајена разлика између функције пријатеља и класе пријатеља је да када се користи функција пријатеља, члановима приватне класе може се приступити, али у пријатељској класи, приступају се само именима класе пријатеља, а не приватним члановима класе.

Тхе функција пријатеља било да се користи функцијом или класом може негативно утицати на објектно оријентисани оквир јер слаби енкапсулација што је против објектно оријентисана парадигма. То је разлог због којег се функција пријатеља мора мудро користити јер би се могла пауза тхе тхе сакривање података кода.

Ова функција пријатеља није ни једно ни друго комутативни и ни прелазни. Кс је И-ов пријатељ, не закључује да је И такође И-ов пријатељ. Ако је Кс И-ов пријатељ, а И је З-ов, не значи да је Кс пријатељ З-а.


    1. Упоредни графикон
    2. Дефиниција
    3. Кључне разлике
    4. Закључак

Упоредни графикон

Основе за поређењеФриенд ФунцтионФриенд Цласс
ОсновниТо је функција која се користи с кључном речју пријатеља да би се омогућило приступ функцији нечлану приватним члановима класе.То је класа која се користи с кључном речју пријатеља за приступ приватним члановима друге класе.
Прослеђивање декларацијеМора се користити.Није обавезно.
УпотребаПријатељска функција може се користити у неким случајевима преоптерећења оператера.Пријатељска класа може се користити када се класа креира на врху друге класе.

Дефиниција функције пријатеља

Тхе функција пријатеља користи се за приступ приватним и заштићеним члановима класе допуштајући функцији која није чланица да добије приступ. У овој врсти функције користи се кључна реч пријатељ пре имена функције у тренутку декларације. За функцију пријатеља примењују се неки рестриктивни услови. Први услов је да функција пријатеља не наслеђује дечија класа. Други је услов да спецификатор класе складишта можда није присутан у функцији пријатеља, што значи да се не може декларирати као статички и вањски.


Функција фриенд се не позива са позваним објектом класе. Примјери функције пријатеља су: глобална функција, функција члана класе, предложак функције може бити функција пријатеља. Схватимо то уз помоћ примера.

#инцлуде користећи намеспаце стд; прво класа {инт подаци; јавно: прво (инт и): подаци (и) {} приказ неважећих пријатеља (прво цонст & а); }; воид дисплаи (цонст фирст & а) {цоут << "дата =" <користећи намеспаце стд; цласс фирст {// Прогласите пријатеља цласс цласс Сецонд цласс; публиц: Фирст (): а (0) {} воид () {цоут << "Резултат је" << а << ендл; } приватно: инт а; }; класа Друга {јавна: промена воид (Фирст & ицласс, инт к) {ицласс.а = к; }}; инт маин () Прво обј1; Други обј2; обј1. (); обј2.цханге (обј1, 5); обј1. (); // Излаз Резултат је 0 Резултат је 5

  1. Пријатељска функција је функција која може приступити приватним и заштићеним члановима класе. Супротно томе, пријатељска класа је класа која помаже у приступу приватним члановима класе.
  2. Пријатељска функција декларирана је укључивањем њеног прототипа унутар класе, придруживањем кључној речи фриенд. Слично томе, класа пријатеља је такође дефинисана помоћу кључне речи фриенд.
  3. Напријед декларација користи се у случају функције пријатеља насупрот, није је потребно користити у пријатељској класи.

Закључак

Функција пријатеља потребна је када функција треба да приступи двема или више независних класа, унутрашњим члановима. Са друге стране, пријатељска класа је потребна када класа захтева приступ припадницима друге класе. Када функција више чланова мора бити пријатељ те функције, у том случају је боље користити класу пријатеља.