Salida de programas C++ | Conjunto 28 (Modificadores de acceso)

Requisito previo: Modificadores de acceso en c , Herencia

1. ¿Cuál es la salida? 

C++

#include <iostream>
using namespace std;
 
class access
{
    int a = 10;
    void disp()
    {
        cout<< "a: "<< a;
    }
     
};
 
int main()
{
    access a;
    a.disp();
    return 0;
}

Producción: 

Error

Descripción: cuando no se especifican los especificadores de acceso, se toman como privados de forma predeterminada. Solo se puede acceder a las variables privadas dentro de la clase y no se puede acceder usando. operador también si no es público. 
 

2. ¿Cuál es la salida?

C++

#include <iostream>
using namespace std;
 
class access
{
 private:
    int a_pri = 10;
 protected:
     int b_pro = 20;
 public:
    int c_public = 30;
};
 
int main()
{  
    access a;
    cout<< "private: " << a.a_pri;
    cout<< "protected: "<< a.b_pro;
    cout<< "public: " << a.c_public;
     
    return 0;
}

Producción: 

error

Descripción: no se puede acceder a las variables privadas y protegidas fuera de la clase. 
 

3. ¿Cuál es la salida?

C++

#include <iostream>
using namespace std;
 
class access
{
protected:
    int b_pro = 20;
public:
        int c_public = 30;
};
 
class access_modifier: public access
{
public:
    void disp()
    {
            cout<< "protected: "<< b_pro << endl;
            cout<< "public: " << c_public << endl;
    }
     
};
 
int main()
{
    access_modifier a;
    a.disp();
     
    return 0;
}

Producción: 

protected: 20
public: 30

Descripción: sólo se puede acceder a las variables protegidas de forma derivada de la misma. Aquí no podemos imprimir a_pri ya que es un miembro privado y no se puede acceder a ellos en la clase derivada independientemente del tipo de herencia. 
 

4. ¿Cuál es la salida?

C++

#include <iostream>
   using namespace std;
   class rectangle
   {
       int x, y;
       public:
       void val (int, int);
       int area ()
       {
           return (x * y);
       }
   };
   void rectangle::val (int a, int b)
   {
       x = a;
       y = b;
   }
   int main ()
   {
       rectangle rect;
       rect.val (3, 4);
       cout << "rect area: " << rect.area();
       return 0;
   }

Producción: 

rect area: 12

Descripción: dado que tanto area() como val() se declaran como públicos, se puede acceder a ellos fuera de la clase. 
 

5. ¿Cuál es la salida?

C++

#include <iostream>
using namespace std;
 
class access
{
    public:
        int a_public = 30;
};
 
class access_modifier: private access
{
  
};
 
class inheritance:public access_modifier
{
public:
    void disp()
    {
      cout<< access::a_public;
    }
};
int main()
{  
    inheritance a;
    a.disp();
     
     return 0;
}

Salida: error 
Descripción: cuando una clase se deriva como herencia privada, sus variables se vuelven privadas y solo se accede a ellas en esa clase y en herencias posteriores no son accesibles. 

Este artículo es una contribución de I.HARISH KUMAR . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente. 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 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 *