Cel mai bun răspuns
Public și privat sunt mecanisme de protecție pentru clasele noastre în C ++. Dacă o variabilă / funcție membru este publică, poate fi utilizată oriunde în cadrul clasei. Dacă o variabilă / funcție membru este privată, aceasta poate fi accesată numai de funcții membre din clasa respectivă.
Este o idee bună să folosiți privat când puteți. Nu vrem ca utilizatorul final să aibă acces la date pe care nu le-ar trebui. De exemplu, imaginați-vă că scriu un program care va permite unui utilizator să joace un joc de cărți. În primul rând, programul va imprima cărțile pe care le are jucătorul. Apoi utilizatorul va introduce ce carte ar dori să joace. În acest caz, mi-aș dori probabil ca cărțile să fie private într-un fel. Nu vreau ca utilizatorul să schimbe cardurile și să creeze carduri care nu există.
Pentru a accesa variabile / funcții de membru privat, puteți utiliza funcții publice. De exemplu, dacă am o variabilă privată numită număr int, aș putea scrie o funcție de membru public pentru a accesa variabila respectivă, numită getNumber (). În acest fel, pot accesa numărul și îl pot folosi oriunde, dar nu trebuie să-mi fac griji că numărul este folosit incorect.
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;
};
Răspuns
În C ++ privat înseamnă că poate fi utilizat doar de către clasă intern și nu poate fi accesat în afara clasei menționate, în timp ce public înseamnă că poate fi accesat în afara clasei.
De exemplu, dacă creați o instanță a clasei dvs., nu puteți accesa direct variabilele și metodele private și va cauza o eroare dacă încercați să faceți acest lucru.
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;
}