Introdução
Neste laboratório, aprenderemos como demonstrar o conceito de Friend Function na linguagem de programação C++. Criaremos uma classe Volume com variáveis membro privadas e usaremos uma Friend Function para acessar essas variáveis privadas fora da classe.
Criar a classe Volume
Primeiramente, crie um novo arquivo C++ no diretório ~/project com o nome main.cpp e adicione o seguinte código para definir a classe 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) {}
};
Definimos uma classe Volume com uma variável membro privada liter, que não pode ser acessada diretamente de fora da classe.
Declarar uma Friend Function para a classe Volume
Agora, declare uma Friend Function para a classe Volume, que nos permitirá acessar as variáveis privadas desta classe fora da classe.
//Declaring the Friend Function for the class Volume
friend int mulFive(Volume);
Declaramos uma Friend Function com o nome mulFive(), que recebe um objeto Volume como entrada e retorna um valor inteiro.
Definir a Friend Function
Agora, defina a função mulFive(), que usará o recurso de Friend Function para acessar a variável privada da classe Volume. Adicione o seguinte código para definir a função 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;
}
Definimos uma função mulFive() que tem acesso à variável privada liter de Volume usando o recurso de Friend Function. Esta função multiplica a variável liter por 5 e a retorna.
Chamar a Friend Function na função main()
Na função main(), crie um objeto da classe Volume e chame a função mulFive() para acessar e manipular os dados privados da classe Volume. Este é o passo final e mais importante.
//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;
}
Definimos uma função main() que cria um objeto da classe Volume e chama a função mulFive() para acessar os dados privados da classe Volume.
Resumo
Neste laboratório, aprendemos como demonstrar o conceito de Friend Function na linguagem de programação C++ criando uma classe Volume e usando uma Friend Function para acessar as variáveis privadas desta classe fora da classe. Uma Friend Function é uma função não membro que tem acesso aos membros privados de uma classe, e pode ser útil em alguns casos para manipular ou acessar dados privados de uma classe.



