Функция друга C ++

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

Что такое функция друга?

Функция друга — это функция, не являющаяся членом, которая может получить доступ к закрытым и защищенным членам класса. «Друг» — это ключевое слово, используемое для обозначения того, что функция является другом класса. Это позволяет компилятору знать, что конкретная функция является другом данного класса. Тогда функция друга должна иметь доступ к закрытому и защищенному члену данного класса. Без ключевого слова friend внешняя функция, не являющаяся членом, может получить доступ только к открытым членам класса.

Ключевые особенности функции Friend:

Вот ключевые особенности функции друга:

  1. Функция друга не входит в область действия класса.
  2. Функцию друга нельзя вызвать с помощью экземпляра класс.
  3. Он может получить доступ к членам с помощью оператора объекта и точки.

Синтаксис функции Friend:

Вот синтаксис функции друга:

class Class_Name_Demo
{
………………………………… ……
……………………………………

друг return_Type function_Name (arg_1, arg_2,…);
};

Пример функции друга:

Теперь давайте рассмотрим пример программы, чтобы понять концепцию функции друга в C ++. В приведенном ниже примере программы у нас есть класс «Friend_Demo». Он имеет три разных типа данных-членов, то есть частные, защищенные и общедоступные.

Мы определили другую функцию, то есть «friendDemo_Func ()» вне области действия класса «Friend_Demo» и пытался получить доступ к членам (частным, защищенным и общедоступным) класса «Friend_Demo».

Но, как вы можете видеть в выводе ниже, когда мы компилируем программу, он выдает ошибки компиляции. Функция друга точно решит эту проблему.

#include
using namespace std;

class Friend_Demo
{
private:
int i_private;
protected:
int i_protected;
public:
int i_public;
};

void friendDemo_Func ()
{
Friend_Demo fd;

fd.i_private = 10;
fd.i_protected = 15;
fd.i_public = 20;

cout cout cout }

int main ()
{
friendDemo_Func ();

return 0;
}

В предыдущей программе мы получали ошибки компиляции при попытке доступа к частным, защищенным, и публичные члены класса из функции, не являющейся членом. Это связано с тем, что функции, не являющейся членом класса, не разрешен доступ к закрытым и защищенным членам класса извне класса.

Теперь, в этом примере, мы объявили «friendDemo_Func ( ) »Как друг внутри области класса, то есть« Friend_Demo »:

friend void friendDemo_Func ();

Мы создали объект, т.е. «fd» класса «Friend_Demo» внутри функции «friendDemo_Func ()». Теперь мы можем получить доступ к закрытым, защищенным и общедоступным членам класса «Friend_Demo» с помощью оператора точки. Мы присвоили 10, 15 и 20 значениям i_private, i_protected и i_public соответственно.

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

#include
using namespace std;

class 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 cout cout }

int main ()
{
friendDemo_Func ();

return 0;
}

Заключение:

В В этой статье я объяснил концепцию функции друга в C ++. Я также показал два рабочих примера, чтобы объяснить, как функция друга ведет себя в C ++. Иногда функция друга может быть очень полезна в сложной среде программирования. Однако программисту следует быть осторожным, не злоупотребляя им и не ставя под угрозу его функции ООП.

Оцените статью
nanomode.ru
Добавить комментарий