Najlepsza odpowiedź
Publiczne i prywatne to mechanizmy ochrony naszych klas w C ++. Jeśli zmienna / funkcja składowa jest publiczna, może być używana w dowolnym miejscu w klasie. Jeśli zmienna / funkcja składowa jest prywatna, można uzyskać do niej dostęp tylko przez funkcje składowe tej klasy.
Dobrze jest używaj prywatnego, kiedy tylko możesz. Nie chcemy, aby użytkownik końcowy miał dostęp do danych, których nie powinien. Na przykład wyobraź sobie, że piszę program, który pozwoli użytkownikowi zagrać w grę w karty. Najpierw program wydrukuje karty, które ma gracz. Następnie użytkownik wprowadzi, jaką kartą chciałby zagrać. W tym przypadku prawdopodobnie chciałbym, aby karty były w jakiś sposób prywatne. Nie chcę, aby użytkownik zmieniał karty i tworzył karty, które nie istnieją.
Aby uzyskać dostęp do prywatnych zmiennych / funkcji składowych, możesz użyć funkcji publicznych. Na przykład, jeśli mam prywatną zmienną o nazwie int number, mógłbym napisać publiczną funkcję członkowską, aby uzyskać dostęp do tej zmiennej, o nazwie getNumber (). W ten sposób mogę uzyskać dostęp do numeru i używać go wszędzie, ale nie muszę się martwić, że numer zostanie użyty nieprawidłowo.
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;
};
Odpowiedź
W języku C ++ private oznacza, że może być używany tylko przez klasę wewnętrznie i nie można uzyskać do niego dostępu poza wspomnianą klasą, podczas gdy public oznacza, że można uzyskać do niej dostęp poza klasą.
Na przykład, jeśli utworzysz instancję swojej klasy, nie możesz bezpośrednio uzyskać dostępu do prywatnych zmiennych i metod, co spowoduje błąd, jeśli spróbujesz to zrobić.
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;
}