Público vs Protegido en C++ con ejemplos

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.

Protegido

El modificador de acceso protegido es similar al de los modificadores de acceso privado, la diferencia es que los miembros de la clase declarados como protegidos son inaccesibles fuera de la clase, pero cualquier subclase (clase derivada) de esa clase puede acceder a ellos.
Ejemplo:

// C++ program to demonstrate
// protected access modifier
#include <bits/stdc++.h>
using namespace std;
  
// base class
class Parent {
    // protected data members
protected:
    int id_protected;
};
  
// sub class or derived class
class Child : public Parent {
  
public:
    void setId(int id)
    {
  
        // Child class is able to access the inherited
        // protected data members of base class
  
        id_protected = id;
    }
  
    void displayId()
    {
        cout << "id_protected is: " << id_protected << endl;
    }
};
  
// main function
int main()
{
  
    Child obj1;
  
    // member function of the derived class can
    // access the protected data members of the base class
  
    obj1.setId(81);
    obj1.displayId();
    return 0;
}

Diferencia entre público y protegido

Público Protegido
Todos los miembros de la clase declarados como públicos estarán disponibles para todos. El modificador de acceso protegido es similar al de los modificadores de acceso privado.
Otras clases también pueden acceder a los miembros de datos y las funciones miembro declaradas públicas. Los miembros de la clase declarados como protegidos son inaccesibles fuera de la clase, pero cualquier subclase (clase derivada) de esa clase puede acceder a ellos.

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 *