Legjobb válasz
A nyilvános és a privát védelmi mechanizmusok a C ++ osztályokban. Ha egy tagváltozó / függvény nyilvános, akkor az osztályon belül bárhol használható. Ha egy tagváltozó / függvény privát, azt csak az adott osztály tagfüggvényei érhetik el.
Jó ötlet használd a privátot, amikor tudsz. Nem akarjuk, hogy a végfelhasználó olyan adatokhoz férjen hozzá, amelyekhez nem kellene. Képzeljük el például, hogy olyan programot írok, amely lehetővé teszi a felhasználó számára, hogy kártyajátékot játsszon. Először a program kinyomtatja a lejátszó kártyáit. Ezután a felhasználó megadja, hogy milyen kártyát szeretne játszani. Ebben az esetben valószínűleg azt szeretném, ha a kártyák valamilyen módon privátak lennének. Nem akarom, hogy a felhasználó megváltoztassa a kártyákat, és olyan kártyákat készítsen, amelyek nem léteznek.
A privát tag változók / függvények eléréséhez használhatja a nyilvános funkciókat. Például, ha van privát változóm, amelyet int számnak hívok, írhatok egy nyilvános tag függvényt a változó eléréséhez, a getNumber () nevet. Így hozzáférhetek a számhoz, és bárhol használhatom, de nem kell aggódnom a szám helytelen használata miatt.
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;
};
Válasz
A C ++ -ban a privát azt jelenti, hogy csak az osztály használhatja belsőleg, és nem érhető el az említett osztályon kívül, míg a public azt jelenti, hogy az osztályon kívül is elérhető.
Például, ha példányt hoz létre az osztályából, akkor nem férhet hozzá közvetlenül a privát változókhoz és metódusokhoz, és ez hiba, ha megpróbálja megtenni.
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;
}