Paras vastaus
Julkinen ja yksityinen ovat suojamekanismeja luokkillemme C ++: ssa. Jos jäsenmuuttuja / funktio on julkinen, sitä voidaan käyttää missä tahansa luokassa. Jos jäsenmuuttuja / funktio on yksityinen, siihen pääsee vain kyseisen luokan jäsenfunktioilla .
On hyvä idea käytä yksityistä, kun voit. Emme halua, että loppukäyttäjällä on pääsy tietoihin, joita hänen ei pitäisi. Kuvittele esimerkiksi, että kirjoitan ohjelman, jonka avulla käyttäjä voi pelata korttipeliä. Ensin ohjelma tulostaa soittimella olevat kortit. Sitten käyttäjä syöttää minkä kortin haluaisi pelata. Tässä tapauksessa haluaisin todennäköisesti, että kortit ovat jollakin tavalla yksityisiä. En halua käyttäjän vaihtavan kortteja ja tekemästä kortteja, joita ei ole.
Voit käyttää yksityisiä jäsenmuuttujia / toimintoja käyttämällä julkisia toimintoja. Esimerkiksi, jos minulla on yksityinen muuttuja, jonka nimi on int-numero, voisin kirjoittaa julkisen jäsenfunktion käyttääksesi tätä muuttujaa, nimeltään getNumber (). Näin pääsen numeroon ja voin käyttää sitä missä tahansa, mutta minun ei tarvitse huolehtia numeron väärästä käytöstä.
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;
};
Vastaa
C ++ – tilassa yksityinen tarkoittaa, että luokka voi käyttää sitä vain sisäisesti eikä siihen pääse mainitun luokan ulkopuolella, kun taas julkinen tarkoittaa sitä, että siihen pääsee luokan ulkopuolella.
Esimerkiksi jos teet instanssin luokastasi, et voi käyttää suoraan yksityisiä muuttujia ja menetelmiä, ja se aiheuttaa virhe, jos yrität tehdä niin.
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;
}