Clases

7. Especificadores de acceso

Dentro de la lista de miembros, cada miembro puede tener diferentes niveles de acceso, hasa ahora hemos visto los privados y los públicos.

En nuestros ejemplo hemos usado dos de esos niveles, 

  • public
    • Cuando usted declara público ( public) un miembro de una clase, usted permite el acceso a tal miembro desde dentro y fuera de la clase.
  • private
    • Cuando un miembro de una clase es declarado privado ( private ) es  ináccesible no sólo desde otras clases y otras partes del programa, sino también desde sus clases derivadas
  • protected
    • Los miembros de datos que son declarados protegidos ( protected ) son únicamente accesibles por funciones miembro de la clase, pero no se pueden acceder a ellos desde otras clases.

La sintaxis sería: 

class <identificador de clase> 
 {
  public: //<-etiqueta!!
   <lista de miembros>
  private://<-etiqueta!!
   <lista de miembros>
  protected: //<-etiqueta!
   <lista de miembros>
 };

Acceso privado, private

Los miembros privados de una clase sólo son accesibles por los propios miembros de la clase y en general por objetos de la misma clase, pero no desde funciones externas o desde funciones de clases derivadas.

Acceso público, public

Cualquier miembro público de una clase es accesible desde cualquier parte donde sea accesible el propio objeto. Veamos un Ejemplo:


#include <iostream>
using namespace std;
class  X {public:
	  int a;
	  };
class  Z {public:
         int b;};
{
	X a1,a4;
	Z a2,a5;
	int a3;
	a1.a=3; 
	//a2=a1;  //Esta línea tiraría error, no se pueden igualar Clases Distintas !!
	//a3=a1 ; //Esta línea tiraría error, No se puede convertir X a int !!
	a5.b=8;
	a4=a1 ; //esto es correcto
	a2=a5; // esto es correcto
}

Observación: este mismo ejemplo es válido si en lugar de la palabra class se usa struct !

Mecanografía para niños. Programas y juegos gratis para aprender. 

Se pide al alumno, compilar el código sacando las etiquetas public de la clase Z y ver que error tira.


Acceso protegido, protected

Con respecto a las funciones externas, es equivalente al acceso privado, pero con respecto a las clases derivadas se comporta como público.

Cada una de éstas palabras, seguidas de ":", da comienzo a una sección, que terminará cuando se inicie la sección siguiente o cuando termine la declaración de la clase. Es posible tener varias secciones de cada tipo dentro de una clase.

Si no se especifica nada, por defecto, los miembros de una clase son privados. Como en la materia NO se ve Herencia , este tema no se profundiza.