Co je soukromé a veřejné v C ++?


Nejlepší odpověď

Veřejné a soukromé jsou ochranné mechanismy pro naše třídy v C ++. Pokud je členská proměnná / funkce veřejná, lze ji použít kdekoli v rámci třídy. Pokud je členská proměnná / funkce soukromá, lze k ní přistupovat pouze prostřednictvím členských funkcí dané třídy.

Je dobrý nápad používat soukromé, když můžete. Nechceme, aby koncový uživatel měl přístup k údajům, které by neměl. Představte si například, že píšu program, který uživateli umožní hrát hru karet. Nejprve program vytiskne karty, které hráč má. Poté uživatel zadá, jakou kartu by chtěl hrát. V tomto případě bych pravděpodobně chtěl, aby byly karty nějakým způsobem soukromé. Nechci, aby uživatel vyměnil karty a vytvořil karty, které neexistují.

Pro přístup k soukromým proměnným / funkcím členů můžete použít veřejné funkce. Například pokud mám soukromou proměnnou nazvanou int number, mohl bych napsat veřejnou členskou funkci pro přístup k této proměnné s názvem getNumber (). Tímto způsobem mohu získat přístup k číslu a použít ho kdekoli, ale nemusím si dělat starosti s nesprávným používáním čísla.

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;

};

Odpověď

V C ++ private znamená, že jej může interně používat pouze třída a nelze k němu přistupovat mimo uvedenou třídu, zatímco public znamená, že k ní lze přistupovat mimo třídu.

Pokud například vytvoříte instanci své třídy, nemůžete přímo přistupovat k soukromým proměnným a metodám a způsobí to chyba, pokud se o to pokusíte.

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;

}

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *