Введение
В этом лабораторном занятии мы узнаем, как демонстрировать концепцию друзейской функции в языке программирования 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 и использования "друзейской функции" для доступа к приватным переменным этого класса вне класса. "Друзейская функция" - это функция, не являющаяся членом класса, которая имеет доступ к приватным членам класса, и она может быть полезной в некоторых случаях для манипулирования или доступа к приватным данным класса.



