Mejor respuesta
Público y privado son mecanismos de protección para nuestras clases en C ++. Si una variable / función miembro es pública, puede usarse en cualquier lugar dentro de la clase. Si una variable / función miembro es privada, solo se puede acceder a ella mediante funciones miembro de esa clase.
Es una buena idea use privado cuando pueda. No queremos que el usuario final tenga acceso a datos que no debería. Por ejemplo, imagina que estoy escribiendo un programa que permitirá a un usuario jugar a las cartas. Primero, el programa imprimirá las tarjetas que tiene el jugador. Luego, el usuario ingresará qué carta le gustaría jugar. En este caso, probablemente me gustaría que las tarjetas fueran privadas de alguna manera. No quiero que el usuario cambie las tarjetas y cree tarjetas que no existen.
Para acceder a variables / funciones de miembros privados, puede usar funciones públicas. Por ejemplo, si tengo una variable privada llamada int número, podría escribir una función miembro pública para acceder a esa variable, llamada getNumber (). De esta manera, puedo acceder al número y usarlo donde sea, pero no tengo que preocuparme de que el número se use incorrectamente.
class Count{
public:
/*numberPub can be used anywhere in the class Count */
int numberPub;
/*This will return our private variable, numberPri. This way, we can return the variable, but we do not have to worry about access, such as a user modifying the value when they shouldn"t. */
int getNumberPri();
private:
/*numberPri cannot be used anywhere in the class Count. If we want to use numberPri in Count, we must use getNumberPri() to access it*/
int numberPri;
};
Responder
En C ++ privado significa que solo puede ser utilizado por la clase internamente y no se puede acceder fuera de dicha clase, mientras que público significa que se puede acceder fuera de la clase.
Por ejemplo, si crea una instancia de su clase, no puede acceder directamente a las variables y métodos privados, y esto provocará un error si intenta hacerlo.
class Example
{
private:
int private\_data;
int public\_data;
};
int main(int argc, char* argv[])
{
// create an instance
Example example;
// public variables and methods can be accessed
example.public\_data = 100;
// private variables and methods can only be accessed inside
// the class
// this next line will cause an error
example.private\_data = 1;
return 0;
}