C ++ protegido

C ++ protegido

Al igual que muchos otros lenguajes de programación, C ++ también nos proporciona la característica de la ocultación de datos para fines de seguridad. Utilizamos modificadores de acceso dentro de un programa C ++ para proteger nuestros datos en diferentes niveles de seguridad. C ++ incluye los especificadores de acceso público, privado y protegido para asegurar sus variables y funciones. El especificador de acceso protegido es un poco diferente tanto del privado como del público. Este artículo se centrará en el modificador de acceso "protegido" en ejemplos de código C ++. Entonces empecemos. Abra la aplicación Shell, cree un nuevo archivo C ++ y ábralo en el editor.

Ejemplo 01: Public vs. Privado

Antes de centrarnos en el especificador de acceso protegido, necesitamos aprender el funcionamiento de un especificador de acceso público y privado. Después de usar el espacio de nombres C ++ al comienzo de un código, hemos declarado una prueba de clase con una variable pública "A" y una variable privada "B". Hemos inicializado un objeto "t" de una clase de prueba en el método main ().

El valor 10 se asigna a la variable "a", que es pública. Usando el objeto "Cout", hemos mostrado el valor de la variable "A" usando el objeto "T". El mismo objeto de clase de prueba "T" se ha utilizado aquí para asignar el valor "12" al miembro de datos privados "B". Usando el objeto "Cout" nuevamente, utilizamos el objeto "T" para mostrar el valor de la variable "B". Por último, la declaración de retorno 0 saldrá con éxito. Es hora de guardar este nuevo código C ++ primero y compilarlo en el shell.

Debe asegurarse de que el compilador C ++ "G ++" esté instalado y completamente configurado en su sistema. Entonces, hemos probado la instrucción del compilador G ++ en el shell después del nombre de un archivo "protegido.CC ". Ejecución de esta instrucción del compilador, tenemos el error en la línea 13 Cuando asignamos el valor a la variable privada "b" usando el objeto "t". Esto se debe a que la variable privada en la prueba de clase no se puede usar fuera de esta clase, yo.mi., en cualquier función o clase. El modificador de acceso público permitirá que cada variable y función esté disponible para todos. En contraste, el modificador de acceso privado no permite el acceso de variables y funciones a cualquiera, yo.mi., cada clase.

Veamos cómo podemos usar miembros de datos privados para que se muestren en el shell. Hemos actualizado el mismo archivo C ++ en la prueba de clase declarando las dos funciones públicas, get () y set (). La implementación de ambas funciones se ha realizado fuera de la clase de "prueba". La función "get ()" se utiliza para devolver el valor del miembro de datos privados "y" a la función main () para visualizar.

La función set () utiliza el valor aprobado por la función main () y lo asigna al miembro de datos privados "y" de la prueba de clase. Dentro del método main (), hemos estado utilizando el objeto "t" de la prueba de clase para asignar el valor "10" a la variable pública "x" de la prueba de clase. La instrucción Cout muestra el valor de "x" en el shell. Ahora, hemos estado llamando a la función set () por objeto "t" para pasar el valor "14" al miembro de datos privados "y" de clase "prueba". La instrucción Cout ha llamado a la función "Get" para mostrar el valor de la variable "Y" en el shell. Este código nos permitirá mostrar el valor de miembro de los datos privados en el shell utilizando las funciones de datos públicos de la misma clase. Guardemos este código y lo ejecutemos:

Tenemos los valores para "X" y "Y" que se muestran en la ejecución de este código recientemente actualizado:

Ejemplo 02:

Echemos un vistazo al modificador de acceso protegido ahora. Hemos abierto el archivo de código y lo actualizamos un poco. Se agregó las bibliotecas requeridas junto con el espacio de nombres C ++. Declaró una clase de padres y una clase infantil derivada del "padre". La clase principal contiene una variable protegida "x" de tipo entero. La clase infantil solo contiene dos funciones públicas, yo.mi., Establecer y obtener. Después de las clases, hemos implementado ambas funciones de la clase infantil estableciendo el valor de "x" y volviendo a la función main ().

La función Main () es crear objeto "C" para la clase infantil. Este objeto se usa para establecer el valor para la variable "x" y mostrarlo en el shell a través del método get (). El uso de un objeto para asignar valor a la variable "x" mostrará un error en la ejecución. Luego, guarde el código y salga del archivo.

La salida es la misma que se esperaba, yo.mi., error.

Para evitar este error al asignar el valor a un miembro de datos protegido, debemos usar las funciones de datos públicos, i.mi., Establezca y obtenga funciones en la clase infantil. Usando la función set (), podemos asignar el valor a la variable protegida "x" como lo hicimos en el siguiente código de imagen. Después de eso, podemos usar fácilmente la función get () para mostrar el miembro de datos protegidos en el shell dentro de la declaración de objeto Cout. Guarde este código y compile después de eso:

Después de compilar el código actualizado, esta vez no tenemos errores de compilación. Tenemos el valor de la variable protegida "x" que se muestra en la pantalla de shell utilizando la consulta de ejecución.

Ejemplo 03:

Echemos un vistazo a otro ejemplo para usar el modificador de acceso protegido. Dentro de este ejemplo, utilizaremos múltiples herencias para aclararlo y agregar tres clases A, B y C. La clase A es la clase madre de B, y B es el padre de C. Tanto A como B contienen las variables protegidas "X" y "Y". La clase B y C contiene funciones como miembros de datos públicos, yo.mi., set () y get ().

La clase B usa sus funciones para establecer y devolver el valor para el miembro de datos protegidos de clase A "X" como B es su clase derivada. En contraste, la clase C usa sus funciones para establecer y obtener el valor "y" de la clase B, ya que la clase C es su clase derivada. Dentro de la función del código del controlador Main (), hemos creado un objeto de la clase B y establece el valor de la variable "X". El mismo objeto muestra el valor de la variable "x" en el shell. El objeto de clase C se ha creado para establecer el valor de la variable protegida "y" y mostrarlo en el shell. Ejecutemos el siguiente código para ver los resultados:

La salida muestra el uso de las funciones establecer () y gets () está reemplazando el valor ya inicializado para ambas variables protegidas.

Conclusión:

Se trataba de usar un modificador de acceso protegido para asegurar los miembros de los datos para clases en C++. Para dejarlo más claro, también hemos discutido el ejemplo del uso de miembros de datos públicos y privados. Además, hemos discutido la herencia para demostrar el trabajo y el uso de especificadores de acceso seguro en nuestro código. El uso de la función set () y get () es una ventaja para evitar errores al ejecutar este artículo. Esperamos que hayas encontrado este artículo útil. Consulte los otros artículos de Sugerencia de Linux para obtener más consejos y tutoriales.