Todos los miembros de la clase declarados como públicos estarán disponibles para todos. Otras clases también pueden acceder a los miembros de datos y las funciones miembro declaradas públicas. Se puede acceder a los miembros públicos de una clase desde cualquier parte del programa utilizando el operador de acceso directo a miembros (.) con el objeto de esa clase.
Ejemplo:
// C++ program to demonstrate public // access modifier #include <iostream> using namespace std; // class definition class Circle { public: double radius; double compute_area() { return 3.14 * radius * radius; } }; // main function int main() { Circle obj; // accessing public data member outside class obj.radius = 5.5; cout << "Radius is: " << obj.radius << "\n"; cout << "Area is: " << obj.compute_area(); return 0; }
Radius is: 5.5 Area is: 94.985
En el programa anterior, el radio del miembro de datos es público, por lo que podemos acceder a él fuera de la clase.
Solo las funciones dentro de la clase pueden acceder a los miembros de la clase declarados como privados. No se permite el acceso directo a ellos por ningún objeto o función fuera de la clase. Solo las funciones miembro o las funciones amigas pueden acceder a los datos privados de los miembros de una clase.
Ejemplo:
// C++ program to demonstrate private // access modifier #include <iostream> using namespace std; class Circle { // private data member private: double radius; // public member function public: void compute_area(double r) { // member function can access private // data member radius radius = r; double area = 3.14 * radius * radius; cout << "Radius is: " << radius << endl; cout << "Area is: " << area; } }; // main function int main() { // creating object of the class Circle obj; // trying to access private data member // directly outside the class obj.compute_area(1.5); return 0; }
Radius is: 1.5 Area is: 7.065
Diferencia entre público y privado
Público | Privado |
---|---|
Todos los miembros de la clase declarados como públicos estarán disponibles para todos. | Solo las funciones dentro de la clase pueden acceder a los miembros de la clase declarados como privados. |
Otras clases también pueden acceder a los miembros de datos y las funciones miembro declaradas públicas. | Solo las funciones miembro o las funciones amigas pueden acceder a los datos privados de los miembros de una clase. |
Se puede acceder a los miembros públicos de una clase desde cualquier parte del programa utilizando el operador de acceso directo a miembros (.) con el objeto de esa clase. | No se permite el acceso directo a ellos por ningún objeto o función fuera de la clase. |