Diferencia entre privado y protegido en c ++

Diferencia entre privado y protegido en c ++
El concepto de encapsulación y ocultación de datos se usa ampliamente en lenguajes de programación orientados a objetos como C++. Conocer estos conceptos garantiza la seguridad y la integridad de los datos en un programa. En C ++, se utilizan dos especificadores de acceso, privados y protegidos, para hacer cumplir estos conceptos. Este artículo cubre la diferencia entre privado y protegido en C ++ y cómo afectan la visibilidad y la accesibilidad de los miembros de la clase.

Tabla de contenido

  • ¿Qué son los especificadores de acceso en c?++
  • Que es privado en c++
  • Lo que está protegido en C++
  • Diferencia entre privado y protegido en c++
  • Ejemplos de especificadores de acceso privado y protegido
  • Conclusión

¿Qué son los especificadores de acceso en c?++

En C ++, los especificadores de acceso son palabras clave reservadas que tienen el propósito de determinar la visibilidad y la accesibilidad de los miembros de una clase. Estas palabras clave se utilizan para restringir o permitir el acceso a diferentes miembros de la clase en un programa.

Los especificadores de acceso determinan desde dónde se puede acceder a un miembro de la clase. Estos especificadores permiten que el código C ++ acceda a un miembro de la clase desde dentro o fuera de una clase. También permiten que las clases derivadas accedan a los miembros de la clase principal.

En C ++, los especificadores de acceso se pueden clasificar en tres especificadores diferentes:

  • privado
  • protegido
  • público

Estos especificadores controlan la visibilidad de los miembros de la clase, que determina dónde y a quién se puede acceder en el programa.

Que es privado en c++

Privado es un especificador de acceso en C ++ que limita la visibilidad y la accesibilidad de los miembros de la clase solo a clase misma. Los miembros que se definen como privados no son accesibles desde fuera de la clase o sus clases derivadas. Los miembros privados están ocultos de otras clases, lo que les impide modificar o acceder a los datos.

Lo que está protegido en C++

Protegido es un especificador de acceso en C ++ que limita la visibilidad y accesibilidad de los miembros de la clase al clase misma y es clases derivadas. Se puede acceder a los miembros definidos como protegidos desde el interior de una clase o sus clases derivadas, pero no desde fuera de la clase. Los miembros protegidos también están ocultos de otras clases, lo que les impide modificar o acceder a los datos.

Diferencia entre privado y protegido en c++

La principal diferencia entre privado y protegido en C ++ es el nivel de accesibilidad de los miembros de la clase. El acceso a miembros privados está restringido dentro de la clase, mientras que los miembros protegidos también son accesibles desde las clases derivadas.

Otra diferencia es que los miembros privados están completamente ocultos de otras clases, mientras que los miembros protegidos están parcialmente ocultos. Esto significa que las clases derivadas pueden acceder a miembros protegidos, pero no modificarlos directamente. Por el contrario, no se puede acceder ni modificar a los miembros privados por ninguna otra clase.

Ejemplos de especificadores de acceso privado y protegido

Para demostrar el concepto de especificadores de acceso en la programación orientada a objetos, es útil proporcionar ejemplos de especificadores de acceso privado y protegido. Echemos un vistazo más de cerca a cómo funcionan los especificadores de acceso privado y protegido y algunos ejemplos de cómo se pueden usar.

Ejemplo de clase privada en C++

El especificador de acceso privado restringe la visibilidad de un miembro de la clase dentro de la clase misma. El siguiente código explica la clase privada en un programa C ++:

#incluir
usando el espacio de nombres STD;
persona de clase
// miembros privados
privado:
cadena FullName;
int
// miembros públicos
público:
void getpersoninfo ()

cout << "Enter full name: ";
GetLine (CIN, Name Full);
cout << "Enter age in years: ";
Cin >> años envejecido;

void displayPersonInfo ()

cout << "Name: " << fullName << endl;
cout << "Age: " << yearsOld << endl;

;
// función principal
int main ()

// Creando objeto
Persona persona;
persona.getpersoninfo ();
persona.DisplayPersonInfo ();
regresar 0;

Este programa C ++ define a una persona de clase con dos variables de miembros privados nombre completo y años, y dos funciones de miembros públicos getpersoninfo () y DisplayPersonInfo ().

La función getPersonInfo () le solicita al usuario que ingrese el nombre y la edad completos de la persona. Después de eso, los almacena en las variables de miembros privados Fullname y Yearsold, respectivamente.

La función DisplayPersonInfo () simplemente imprime el nombre y la edad de la persona en la consola.

En la función Main (), creamos una persona de objeto de la clase de persona y llamamos a sus funciones getPersonInfo () y DisplayPersonInfo () para solicitar al usuario que ingrese la información de una persona y luego la muestre en la consola.

Ejemplo de clase protegida en c++

El especificador de acceso protegido limita la visibilidad de un miembro de la clase dentro de la clase y sus subclases. Tomemos un ejemplo que explique las clases protegidas en un programa C ++.

#incluir
usando el espacio de nombres STD;
// clase base
persona de clase
// miembros privados
privado:
cadena FullName;
int Age;
// miembro protegido
protegido:
int idnumber;
// miembros públicos
público:
void getpersoninfo ()

cout << "Enter full name: ";
GetLine (CIN, Name Full);
cout << "Enter age: ";
Cin >> edad;

void displayPersonInfo ()

cout << "Name: " << fullName << endl;
cout << "Age: " << age << endl;

;
// clase derivada
Estudiante de clase: persona pública
// miembros privados
privado:
Ciudad de cuerda;
// miembros públicos
público:
void setid (int id)

// Aquí IdNumber es el miembro protegido de la persona
// clase, es accesible aquí
idnumber = id;

void getStudentInfo ()

// llamar a getpersoninfo () para leer detalles básicos
getpersoninfo ();
// Ingresar ciudad
cout << "Enter city: ";
Cin >> Ciudad;

void displayStudentInfo ()

// Mostrando el número de identificación
cout << "ID Number: " << idNumber << endl;
// llamando a displayPersonInfo () para imprimir detalles básicos
DisplayPersonInfo ();
// exhibiendo la ciudad también
cout << "City: " << city << endl;

;
// función principal
int main ()

// Creando objeto
Estudiante de estudiante;
// Número de identificación de configuración
alumno.setid (12345);
// Obtener todos los detalles
alumno.getStudentInfo ();
// Impresión de todos los detalles
alumno.DisplayStudentInfo ();
regresar 0;

Aquí en este código, la clase base es persona con miembros privados nombre completo y edad, y un miembro protegido número de identificación. La clase derivada es estudiante con una ciudad miembro privada y funciones de miembros públicos setid (), getStudentInfo () y displayStudentInfo ().

La función setid () establece el número de identificación, que define un miembro protegido de la clase base. La función getStudentInfo () lee los detalles básicos del estudiante como el nombre completo, la edad y la ciudad en la que viven.

El DisplayStudentInfo () La función imprime todos los detalles del estudiante que incluye su número de identificación, nombre completo, edad y ciudad.

Conclusión

Especificadores de acceso privado y protegido en la programación orientada a objetos garantizar la encapsulación y la ocultación de datos. Los miembros privados están completamente ocultos de otras clases, mientras que los miembros protegidos están parcialmente ocultos y se puede acceder mediante clases derivadas. La elección entre usar especificadores de acceso privado y protegido depende del diseño y la implementación de la clase. Lea el artículo para comprender los detalles de los especificadores de acceso privado y protegido.