C++ Encapsulation


Inkapseling

Die betekenis van Encapsulation , is om seker te maak dat "sensitiewe" data vir gebruikers versteek word. Om dit te bereik, moet jy klasveranderlikes/-kenmerke verklaar as private(kan nie van buite die klas verkry word nie). As jy wil hê dat ander die waarde van 'n private lid moet lees of verander, kan jy publieke kry en stel metodes verskaf.


Toegang tot privaat lede

Om toegang tot 'n private kenmerk te verkry, gebruik publieke "kry" en "stel" metodes:

Voorbeeld

#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;
}

Voorbeeld verduidelik

Die salarykenmerk is private, wat beperkte toegang het.

Die publieke setSalary()metode neem 'n parameter ( s) en ken dit toe aan die salarykenmerk (salaris = s).

Die publieke getSalary()metode gee die waarde van die private salarykenmerk terug.

Binne main()skep ons 'n objek van die Employeeklas. Nou kan ons die setSalary()metode gebruik om die waarde van die private kenmerk op te stel 50000. Dan roep ons die getSalary()metode op die voorwerp om die waarde terug te gee.


Waarom inkapseling?

  • Dit word as goeie praktyk beskou om jou klaskenmerke as privaat te verklaar (so dikwels as wat jy kan). Inkapseling verseker beter beheer van jou data, want jy (of ander) kan een deel van die kode verander sonder om ander dele te beïnvloed
  • Verhoogde sekuriteit van data