Diferencia entre público y privado en C++ con ejemplo

Público

Todos los miembros de la clase declarados como públicos estarán disponibles para todos. Otras clases también pueden acceder a los miembros de datos y las funciones miembro declaradas públicas. Se puede acceder a los miembros públicos de una clase desde cualquier parte del programa utilizando el operador de acceso directo a miembros (.) con el objeto de esa clase.

Ejemplo:

// C++ program to demonstrate public
// access modifier
  
#include <iostream>
using namespace std;
  
// class definition
class Circle {
public:
    double radius;
  
    double compute_area()
    {
        return 3.14 * radius * radius;
    }
};
  
// main function
int main()
{
    Circle obj;
  
    // accessing public data member outside class
    obj.radius = 5.5;
  
    cout << "Radius is: " << obj.radius << "\n";
    cout << "Area is: " << obj.compute_area();
    return 0;
}
Producción:

Radius is: 5.5
Area is: 94.985

En el programa anterior, el radio del miembro de datos es público, por lo que podemos acceder a él fuera de la clase.

Privado

Solo las funciones dentro de la clase pueden acceder a los miembros de la clase declarados como privados. No se permite el acceso directo a ellos por ningún objeto o función fuera de la clase. Solo las funciones miembro o las funciones amigas pueden acceder a los datos privados de los miembros de una clase.
Ejemplo:

// C++ program to demonstrate private
// access modifier
  
#include <iostream>
using namespace std;
  
class Circle {
    // private data member
private:
    double radius;
  
    // public member function
public:
    void compute_area(double r)
    {
        // member function can access private
        // data member radius
        radius = r;
  
        double area = 3.14 * radius * radius;
  
        cout << "Radius is: " << radius << endl;
        cout << "Area is: " << area;
    }
};
  
// main function
int main()
{
    // creating object of the class
    Circle obj;
  
    // trying to access private data member
    // directly outside the class
    obj.compute_area(1.5);
  
    return 0;
}
Producción:

Radius is: 1.5
Area is: 7.065

Diferencia entre público y privado

Público Privado
Todos los miembros de la clase declarados como públicos estarán disponibles para todos. Solo las funciones dentro de la clase pueden acceder a los miembros de la clase declarados como privados.
Otras clases también pueden acceder a los miembros de datos y las funciones miembro declaradas públicas. Solo las funciones miembro o las funciones amigas pueden acceder a los datos privados de los miembros de una clase.
Se puede acceder a los miembros públicos de una clase desde cualquier parte del programa utilizando el operador de acceso directo a miembros (.) con el objeto de esa clase. No se permite el acceso directo a ellos por ningún objeto o función fuera de la clase.

Publicación traducida automáticamente

Artículo escrito por Code_r y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *