Enkapsulacja C++
Kapsułkowanie
Znaczenie enkapsulacji polega na upewnieniu się, że „wrażliwe” dane są ukryte przed użytkownikami. Aby to osiągnąć, musisz zadeklarować zmienne/atrybuty klasy jako private
(nie można uzyskać do nich dostępu spoza klasy). Jeśli chcesz, aby inni odczytywali lub modyfikowali wartość prywatnego członka, możesz udostępnić publiczne metody pobierania i
ustawiania .
Dostęp do członków prywatnych
Aby uzyskać dostęp do atrybutu prywatnego, użyj publicznych metod „get” i „set”:
Przykład
#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;
}
Przykład wyjaśniony
Atrybutem salary
jest private
, które mają ograniczony dostęp.
Metoda publiczna setSalary()
przyjmuje parametr ( s
) i przypisuje go do
salary
atrybutu (wynagrodzenie = s).
Metoda publiczna getSalary()
zwraca wartość salary
atrybutu prywatnego.
Wewnątrz main()
tworzymy obiekt Employee
klasy. Teraz możemy użyć
setSalary()
metody do ustawienia wartości atrybutu prywatnego na 50000
. Następnie wywołujemy
getSalary()
metodę na obiekcie, aby zwrócić wartość.
Dlaczego enkapsulacja?
- Dobrą praktyką jest deklarowanie atrybutów klasy jako prywatnych (tak często, jak to możliwe). Enkapsulacja zapewnia lepszą kontrolę nad danymi, ponieważ Ty (lub inne osoby) możesz zmienić jedną część kodu bez wpływu na inne części
- Zwiększone bezpieczeństwo danych