Демонстрация дружественной функции

C++Beginner
Практиковаться сейчас

Введение

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

Создайте класс Volume

Сначала создайте новый файл C++ в каталоге ~/project с именем main.cpp и добавьте следующий код, чтобы определить класс Volume:

#include <iostream>

using namespace std;

//Class Volume to demonstrate the concept of Friend Function in CPP
class Volume {
    //Member variables are declared as private and hence cannot be simply accessed from outside the class
    private:
        int liter;

    //Initializing the value of variable liter to 2 using the default constructor
    public:
        Volume(): liter(2) {}
};

Мы определяем класс Volume с приватным членом-данным liter, который не может быть напрямую доступен извне класса.

Объявите дружественную функцию для класса Volume

Теперь объявите "друзейскую функцию" для класса Volume, которая позволит нам получать доступ к приватным переменным этого класса вне класса.

//Declaring the Friend Function for the class Volume
friend int mulFive(Volume);

Мы объявляем "друзейскую функцию" с именем mulFive(), которая принимает объект Volume в качестве входных данных и возвращает целочисленное значение.

Определите дружественную функцию

Теперь определите функцию mulFive(), которая будет использовать функцию "друзейской функции", чтобы получить доступ к приватной переменной класса Volume. Добавьте следующий код, чтобы определить функцию mulFive():

// Defining the Friend Function to be used by the Volume Class
int mulFive(Volume v) {
    //Friend function enables accessing private data from non-member function
    v.liter *= 5;
    return v.liter;
}

Мы определяем функцию mulFive(), которая имеет доступ к приватной переменной liter класса Volume с использованием функции "друзейской функции". Эта функция умножает переменную liter на 5 и возвращает ее.

Вызовите дружественную функцию в функции main()

В функции main() создайте объект класса Volume и вызовите функцию mulFive(), чтобы получить доступ к приватным данным класса Volume и манипулировать ими. Это последний и самый важный шаг.

//Defining the main method to access the members of the class
int main() {

    cout << "\n\nWelcome to LabEx :-)\n\n\n";
    cout << " =====  Program to demonstrate the working of a Friend Function in CPP  ===== \n\n";

    //Declaring the Class objects to access the class members
    Volume vol;

    cout << "Volume after calling the Friend Function = " << mulFive(vol);

    cout << "\n\n\n";

    return 0;
}

Мы определяем функцию main(), которая создает объект класса Volume и вызывает функцию mulFive(), чтобы получить доступ к приватным данным класса Volume.

Резюме

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