Demostrar la Función Amiga

C++C++Beginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderemos cómo demostrar el concepto de Friend Function en el lenguaje de programación C++. Crearemos una clase Volume con variables miembro privadas y usaremos una Friend Function para acceder a estas variables privadas fuera de la clase.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL cpp(("C++")) -.-> cpp/FunctionsGroup(["Functions"]) cpp(("C++")) -.-> cpp/OOPGroup(["OOP"]) cpp/FunctionsGroup -.-> cpp/function_parameters("Function Parameters") cpp/OOPGroup -.-> cpp/classes_objects("Classes/Objects") cpp/OOPGroup -.-> cpp/access_specifiers("Access Specifiers") cpp/OOPGroup -.-> cpp/constructors("Constructors") cpp/OOPGroup -.-> cpp/encapsulation("Encapsulation") subgraph Lab Skills cpp/function_parameters -.-> lab-96140{{"Demostrar la Función Amiga"}} cpp/classes_objects -.-> lab-96140{{"Demostrar la Función Amiga"}} cpp/access_specifiers -.-> lab-96140{{"Demostrar la Función Amiga"}} cpp/constructors -.-> lab-96140{{"Demostrar la Función Amiga"}} cpp/encapsulation -.-> lab-96140{{"Demostrar la Función Amiga"}} end

Crea la clase Volume

Primero, crea un nuevo archivo C++ en el directorio ~/project con el nombre main.cpp, y agrega el siguiente código para definir la clase Volume:

#include <iostream>

using namespace std;

//Clase Volume para demostrar el concepto de Friend Function en CPP
class Volume {
    //Las variables miembro se declaran como privadas y por lo tanto no se pueden acceder simplemente desde fuera de la clase
    private:
        int liter;

    //Inicializando el valor de la variable liter a 2 usando el constructor predeterminado
    public:
        Volume(): liter(2) {}
};

Definimos una clase Volume con una variable miembro privada liter que no se puede acceder directamente desde fuera de la clase.

Declara una Friend Function para la clase Volume

Ahora, declara una Friend Function para la clase Volume que nos permitirá acceder a las variables privadas de esta clase fuera de la clase.

//Declarando la Friend Function para la clase Volume
friend int mulFive(Volume);

Declaramos una Friend Function con el nombre mulFive() que toma un objeto Volume como entrada y devuelve un valor entero.

Define la Friend Function

Ahora, define la función mulFive() que usará la característica de Friend Function para acceder a la variable privada de la clase Volume. Agrega el siguiente código para definir la función mulFive():

// Definiendo la Friend Function para ser utilizada por la Clase Volume
int mulFive(Volume v) {
    //La función amiga permite acceder a datos privados desde una función no miembro
    v.liter *= 5;
    return v.liter;
}

Definimos una función mulFive() que tiene acceso a la variable privada liter de Volume usando la característica de Friend Function. Esta función multiplica la variable liter por 5 y la devuelve.

Llama a la Friend Function en la función main()

En la función main(), crea un objeto de la clase Volume y llama a la función mulFive() para acceder y manipular los datos privados de la clase Volume. Este es el último y más importante paso.

//Definiendo el método principal para acceder a los miembros de la clase
int main() {

    cout << "\n\nWelcome to LabEx :-)\n\n\n";
    cout << " =====  Programa para demostrar el funcionamiento de una Friend Function en CPP  ===== \n\n";

    //Declarando los objetos de la clase para acceder a los miembros de la clase
    Volume vol;

    cout << "Volumen después de llamar a la Friend Function = " << mulFive(vol);

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

    return 0;
}

Definimos una función main() que crea un objeto de la clase Volume y llama a la función mulFive() para acceder a los datos privados de la clase Volume.

Resumen

En este laboratorio, aprendimos cómo demostrar el concepto de Friend Function en el lenguaje de programación C++ creando una clase Volume y usando una Friend Function para acceder a las variables privadas de esta clase fuera de la clase. Una Friend Function es una función no miembro que tiene acceso a los miembros privados de una clase, y puede ser útil en algunos casos para manipular o acceder a datos privados de una clase.