Demonstração de Friend Function

C++Beginner
Pratique Agora

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.