Ц ++

Функција пријатеља Ц ++

Функција пријатеља Ц ++
Функција је блок кода који извршава одређени задатак и обезбеђује излаз. Углавном се користи за уклањање понављајућег кода. У овом упутству ћемо размотрити функцију пријатеља у Ц ++-у и објаснити њен концепт на радним примерима.

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

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

Кључне карактеристике функције пријатеља:

Ево кључних карактеристика функције пријатеља:

  1. Функција пријатеља није у оквиру класе.
  2. Функција пријатеља не може се позвати помоћу инстанце класе.
  3. Члановима може приступити помоћу оператора објекта и тачке.

Синтакса функције пријатеља:

Ево синтаксе функције пријатељ:

цласс Цласс_Наме_Демо



пријатељ ретурн_Типе фунцтион_Наме (арг_1, арг_2,…);
;

Пример функције пријатеља:

Сада, погледајмо пример програма за разумевање концепта функције пријатеља у Ц++. У доњем примеру програма имамо класу „Фриенд_Демо“. Има три различите врсте чланова података, тј.е., приватни, заштићени и јавни.

Дефинисали смо још једну функцију, тј.е., „ФриендДемо_Фунц ()“ изван оквира класе „Фриенд_Демо“ и покушао је да приступи члановима (приватни, заштићени и јавни) класе „Фриенд_Демо“.

Али, као што можете видети у доњем излазу када компајлирамо програм, он баца грешке при компилацији. Функција пријатеља ће тачно решити овај проблем.

#инцлуде
коришћење простора имена стд;
разред Фриенд_Демо

приватни:
инт и_привате;
заштићено:
инт и_протецтед;
јавно:
инт и_публиц;
;
воид фриендДемо_Фунц ()

Фриенд_Демо фд;
фд.и_привате = 10;
фд.и_протецтед = 15;
фд.и_публиц = 20;
цоут << fd.i_private << endl;
цоут << fd.i_protected << endl;
цоут << fd.i_public << endl;

инт маин ()

фриендДемо_Фунц ();
ретурн 0;

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

Сада смо у овом примеру прогласили функцију „фриендДемо_Фунц ()“ као пријатеља унутар опсега класе, тј.е., „Фриенд_Демо“:

фриенд воид фриендДемо_Фунц ();

Створили смо објекат, тј.е., „Фд“ класе „Фриенд_Демо“ унутар функције „фриендДемо_Фунц ()“. Сада можемо приступити приватним, заштићеним и јавним члановима класе „Фриенд_Демо“ помоћу оператора тачака. Додијелили смо 10, 15 и 20 и_привате, и_протецтед, односно и_публиц.

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

#инцлуде
коришћење простора имена стд;
разред Фриенд_Демо

приватни:
инт и_привате;
заштићено:
инт и_протецтед;
јавно:
инт и_публиц;
фриенд воид фриендДемо_Фунц ();
;
воид фриендДемо_Фунц ()

Фриенд_Демо фд;
фд.и_привате = 10;
фд.и_протецтед = 15;
фд.и_публиц = 20;
цоут << fd.i_private << endl;
цоут << fd.i_protected << endl;
цоут << fd.i_public << endl;

инт маин ()

фриендДемо_Фунц ();
ретурн 0;

Закључак:

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

5 најбољих аркадних игара за Линук
У данашње време рачунари су озбиљне машине које се користе за игре на срећу. Ако не успете да добијете нови високи резултат, знаћете на шта мислим. У ...
Битка за Веснотх 1.13.6 Развој објављен
Битка за Веснотх 1.13.6 објављено прошлог месеца, шесто је развојно издање у издању 1.13.к сериес и доноси низ побољшања, посебно корисничког интерфеј...
Како инсталирати Леагуе Оф Легендс на Убунту 14.04
Ако сте љубитељ Леагуе оф Легендс, ово је прилика да тестирате Леагуе оф Легендс. Имајте на уму да је ЛОЛ подржан на ПлаиОнЛинук ако сте корисник лину...