Modificadores de acceso en C++
Los modificadores de acceso se utilizan para gestionar la accesibilidad y la visibilidad de los datos de una clase. Establecen algunas restricciones a los miembros de datos para que las funciones externas no puedan acceder a ellos. Los modificadores de acceso son de tres tipos en C++:
Modificador de acceso público en C++
Todos los miembros de la clase declarada bajo la palabra clave public estarán disponibles para todas las funciones fuera de la clase dentro del programa. El operador de acceso directo a miembros (.), también conocido como operador de punto, se puede utilizar con el objeto de esa clase específica para acceder a estos miembros de datos.
Ejemplo
El modificador de acceso público se utiliza para declarar una clase, y otras funciones dentro del programa acceden a sus miembros de datos.
#incluir
#incluir
#incluir
usando el espacio de nombres estándar ;
clase triangulo
{
público :
flotar X , y , Con ;
vacío aporte ( )
{
corte << 'Ingrese el lado x de un triángulo:-' ;
comiendo >> X ;
corte << 'Ingrese el lado y de un triángulo:-' ;
comiendo >> y ;
corte << 'Ingrese el lado z de un triángulo:-' ;
comiendo >> Con ;
}
vacío Área ( )
{
flotar s = ( X + y + Con ) / 2 ;
flotar área = raíz cuadrada ( s * ( s - X ) * ( s - y ) * ( s - Con ) ) ;
corte << ' \norte Área del Triángulo =' << área ;
}
} ;
En t principal ( )
{
Triángulo t1 ;
t1. aporte ( ) ;
t1. Área ( ) ;
devolver 0 ;
}
El Triángulo se define como la clase y sus parámetros están bajo la palabra clave pública. Luego, el área del triángulo se calcula fuera de esta clase accediendo a los miembros de datos del modificador público.
El usuario ingresa los tres lados del triángulo y el área del triángulo se calcula accediendo a los valores fuera de la clase, utilizando la fórmula estándar, que es 13,4164.
Modificador de acceso privado en C++
Todos los miembros de la clase declarada bajo la palabra clave privada no estarán disponibles para ninguna función fuera de la clase en el programa. Estos miembros privados sólo pueden ser leídos por los miembros directos dentro de la misma clase. Sin embargo, las funciones y clases de amigos también pueden acceder a los datos.
Ejemplo
Se declaran las dos clases pública y privada y el valor de retorno del programa será el área del triángulo.
#incluir#incluir
#incluir
usando el espacio de nombres estándar ;
clase triangulo
{
privado :
flotar X , y , Con ;
público :
vacío aporte ( )
{
corte << 'Ingrese el lado x de un triángulo:-' ;
comiendo >> X ;
corte << 'Ingrese el lado y de un triángulo:-' ;
comiendo >> y ;
corte << 'Ingrese el lado z de un triángulo:-' ;
comiendo >> Con ;
}
vacío Área ( )
{
flotar s = ( X + y + Con ) / 2 ;
flotar área = raíz cuadrada ( s * ( s - X ) * ( s - y ) * ( s - Con ) ) ;
corte << ' \norte Área del Triángulo =' << área ;
}
} ;
En t principal ( )
{
Triángulo t1 ;
t1. aporte ( ) ;
t1. Área ( ) ;
devolver 0 ;
}
En main(), el objeto t1 no puede acceder directamente a la variable de clase privada float x, y y z, por lo que sólo puede ser manipulado indirectamente a través de la función pública input(), ya que esta función obtiene los valores de x, y y z.
El área del triángulo se obtiene accediendo a la clase privada manipulándola usando la clase pública. Si los valores de x, y y z no se declaran en la clase pública, entonces no se accederá a ellos en main() para realizar cálculos.
Modificador de acceso protegido en C++
Los miembros y funciones bajo la palabra clave protected están protegidos, solo se puede acceder a ellos dentro de la clase y la clase derivada. El resto de clases no pueden acceder a sus datos. Están muy protegidos.
Ejemplo
Los datos protegidos bajo la palabra clave protected solo se pueden leer dentro de la clase y por la clase que es la clase derivada. Este ejemplo es la demostración práctica del modificador de acceso protegido.
#incluir#incluir
#incluir
usando el espacio de nombres estándar ;
//clase padre
clase triangulo
{
protegido :
flotar X , y , Con ;
} ;
//clase infantil
clase TrianguloNiño : Triángulo público {
público :
vacío aporte ( )
{
corte << 'Ingrese el lado x de un triángulo:-' ;
comiendo >> X ;
corte << 'Ingrese el lado y de un triángulo:-' ;
comiendo >> y ;
corte << 'Ingrese el lado z de un triángulo:-' ;
comiendo >> Con ;
}
vacío Área ( )
{
flotar s = ( X + y + Con ) / 2 ;
flotar área = raíz cuadrada ( s * ( s - X ) * ( s - y ) * ( s - Con ) ) ;
corte << ' \norte Área del Triángulo =' << área ;
}
} ;
En t principal ( )
{
TriánguloNiño ;
Niño. aporte ( ) ;
Niño. Área ( ) ;
devolver 0 ;
}
TriangleChild es una clase heredada que se deriva de la clase Triangle. Las variables x, y y z se declaran en Triangle con la palabra clave protected. Esto significa que estas variables están protegidas pero TriangleChild puede acceder a ellas ya que Triangle es su clase principal. Los valores de las variables se han asignado en TriangleChild aunque estén declarados en la clase Triangle.
Se accede a las variables a través de la clase secundaria y luego se calcula el área de un triángulo.
Conclusión
La ocultación de datos evita el acceso no deseado a los datos de una clase desde el exterior. Los modificadores de acceso se utilizan para gestionar la accesibilidad y la visibilidad de los datos en un programa. Para ocultar los datos se utilizan modificadores de acceso privado, protegido y público. Los datos bajo la palabra clave pública también pueden ser leídos por funciones desde fuera de la clase. Los datos declarados como privados solo se pueden leer dentro de la clase, mientras que la clase principal y la clase secundaria también pueden acceder a los datos protegidos.