Modificadores de acceso
public
, protected
y private
determinan el nivel de visibilidad y acceso que tienen los miembros de una clase. Estos modificadores definen cómo los datos y funciones miembro de una clase son accesibles desde fuera de la clase y dentro de ella.
Public
- Los miembros declarados como public son accesibles desde cualquier parte del programa, incluyendo fuera de la clase.
- Pueden ser accedidos y modificados directamente.
Protected
- Los miembros declarados como
protected
son accesibles desde dentro de la clase y desde las clases derivadasheredadas
. - No son accesibles directamente desde fuera de la clase, pero pueden ser utilizados por clases derivadas. More...
Private
- Los miembros declarados como private son accesibles solo desde dentro de la propia clase.
- No son accesibles desde fuera de la clase ni por clases derivadas.
cpp
output#include <iostream>
class Person
{
public:
std::string NamePublic;
void ShowNamePublic()
{
std::cout << "Nombre publico " << NamePublic << std::endl;
}
void PutNames(const std::string &nameProt, const std::string &namePriv)
{
NameProtected = nameProt;
NamePrivate = namePriv;
}
void ShowNames()
{
std::cout << "Nombre publico " << NamePublic << std::endl;
std::cout << "Nombre protegido " << NameProtected << std::endl;
std::cout << "Nombre privado " << NamePrivate << std::endl;
}
protected:
std::string NameProtected;
private:
std::string NamePrivate;
};
int main()
{
Person perosona1;
perosona1.NamePublic = "Pedro";
perosona1.ShowNamePublic();
// (no es posible desde fuera de la clase)
// perosona1.NameProtected = "Pablo";
// perosona1.NamePrivate = "Bilma";
perosona1.PutNames("Pablo", "Bilma");
perosona1.ShowNames();
return 0;
}
shell
Nombre publico Pedro
Nombre publico Pedro
Nombre protegido Pablo
Nombre privado Bilma