Mi a magán és a nyilvános a C ++ nyelven?


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;

}

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük