C ++

Функция за приятели на C ++

Функция за приятели на C ++
Функцията е блок от код, който изпълнява определена задача и осигурява изхода. Използва се главно за елиминиране на повтарящ се код. В този урок ще разгледаме функцията за приятели в C ++ и ще обясним нейната концепция с работни примери.

Какво е приятелска функция?

Функцията за приятели е нечленова функция, която има достъп до частните и защитени членове на клас. „Приятел“ е ключова дума, използвана, за да покаже, че дадена функция е приятел на клас. Това позволява на компилатора да знае, че конкретната функция е приятел на дадения клас. Тогава функцията за приятели трябва да има достъп до частния и защитен член на даден клас. Без ключовата дума friend, нечленова външна функция може да има достъп само до публичните членове на клас.

Основни характеристики на функцията на приятел:

Ето основните характеристики на функцията за приятелство:

  1. Функцията за приятелство не е в обхвата на класа.
  2. Функцията приятел не може да бъде извикана с помощта на екземпляр на клас.
  3. Той може да осъществи достъп до членовете, използвайки оператора обект и точка.

Синтаксис на приятелска функция:

Ето синтаксиса на функцията приятел:

клас Class_Name_Demo

..
..
приятел return_Type function_Name (arg_1, arg_2,…);
;

Пример за приятелска функция:

Сега нека разгледаме примерна програма, за да разберем концепцията за функцията за приятели в C++. В примерната програма по-долу имаме клас “Friend_Demo”. Той има три различни типа членове на данни, т.е.д., частни, защитени и публични.

Определихме друга функция, т.е.д., “FriendDemo_Func ()” извън обхвата на класа “Friend_Demo” и се опита да осъществи достъп до членовете (частни, защитени и публични) на класа “Friend_Demo”.

Но, както можете да видите в изхода по-долу, когато компилираме програмата, тя изхвърля грешки при компилация. Функцията приятел ще реши точно този проблем.

#include
използване на пространство от имена std;
клас Friend_Demo

частно:
int i_private;
защитени:
int i_protected;
публично:
int i_public;
;
void friendDemo_Func ()

Friend_Demo fd;
fd.i_private = 10;
fd.i_protected = 15;
fd.i_public = 20;
Cout << fd.i_private << endl;
Cout << fd.i_protected << endl;
Cout << fd.i_public << endl;

int main ()

friendDemo_Func ();
връщане 0;

В предишната програма получавахме грешки при компилация, докато се опитвахме да получим достъп до частните, защитените и публичните членове на клас от функция, която не е член. Това е така, защото на нечленова функция не е разрешен достъп до частните и защитени членове на клас извън обхвата на класа.

Сега, в този пример, декларирахме функцията “friendDemo_Func ()” като приятел в обхвата на класа, i.д., “Friend_Demo”:

friend void friendDemo_Func ();

Създадохме обект, т.е.д., “Fd” на класа “Friend_Demo” във функцията “friendDemo_Func ()”. Сега можем да осъществим достъп до частните, защитени и публични членове на класа “Friend_Demo”, използвайки точковия оператор. Присвоихме съответно 10, 15 и 20 на i_private, i_protected и i_public.

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

#include
използване на пространство от имена std;
клас Friend_Demo

частно:
int i_private;
защитени:
int i_protected;
публично:
int i_public;
friend void friendDemo_Func ();
;
void friendDemo_Func ()

Friend_Demo fd;
fd.i_private = 10;
fd.i_protected = 15;
fd.i_public = 20;
Cout << fd.i_private << endl;
Cout << fd.i_protected << endl;
Cout << fd.i_public << endl;

int main ()

friendDemo_Func ();
връщане 0;

Заключение:

В тази статия обясних концепцията за функцията за приятели в C++. Също така показах два работни примера, за да обясня как се държи функцията за приятели в C++. Понякога функцията за приятелство може да бъде много полезна в сложна среда за програмиране. Програмистът обаче трябва да бъде предпазлив при прекаляване с него и компрометиране на неговите OOP функции.

Инсталирайте най-новия Dolphin Emulator за Gamecube & Wii на Linux
Dolphin Emulator ви позволява да играете избраните от вас игри Gamecube & Wii на Linux Personal Computers (PC). Като безплатно достъпен и емулатор на...
Как да използвам GameConqueror Cheat Engine в Linux
Статията обхваща ръководство за използването на GameConqueror cheat engine в Linux. Много потребители, които играят игри под Windows, често използват ...
Най-добрите емулатори на игрови конзоли за Linux
Тази статия ще изброи популярния софтуер за емулация на игрова конзола, наличен за Linux. Емулацията е слой за софтуерна съвместимост, който емулира х...