C++ zapouzdření
Zapouzdření
Smyslem Encapsulation je zajistit, aby "citlivá" data byla před uživateli skryta. Abyste toho dosáhli, musíte proměnné/atributy třídy deklarovat jako private
(nelze k nim přistupovat zvenčí třídy). Pokud chcete, aby ostatní četli nebo upravovali hodnotu soukromého člena, můžete poskytnout veřejné metody získávání a
nastavení .
Přístup k soukromým členům
Chcete-li získat přístup k soukromému atributu, použijte veřejné metody „get“ a „set“:
Příklad
#include <iostream>
using namespace std;
class Employee {
private:
// Private attribute
int salary;
public:
// Setter
void setSalary(int s) {
salary = s;
}
// Getter
int getSalary() {
return salary;
}
};
int
main() {
Employee myObj;
myObj.setSalary(50000);
cout << myObj.getSalary();
return 0;
}
Příklad vysvětlen
Atribut salary
je private
, které mají omezený přístup.
Veřejná setSalary()
metoda vezme parametr ( s
) a přiřadí jej k
salary
atributu (plat = s).
Metoda public getSalary()
vrací hodnotu soukromého salary
atributu.
Uvnitř main()
vytvoříme objekt Employee
třídy. Nyní můžeme pomocí
setSalary()
metody nastavit hodnotu soukromého atributu na 50000
. Poté zavoláme
getSalary()
metodu na objektu, abychom vrátili hodnotu.
Proč zapouzdření?
- Považuje se za dobrou praxi deklarovat atributy třídy jako soukromé (tak často, jak můžete). Zapouzdření zajišťuje lepší kontrolu nad vašimi daty, protože vy (nebo ostatní) můžete změnit jednu část kódu, aniž byste ovlivnili ostatní části
- Zvýšená bezpečnost dat